app.config 中的结构配置哪种方法更好?
Which approach is better to structure configuration in app.config?
我的应用程序中有一些设备和一些模块使用设备来完成它们的工作。
配置结构有两种方法:
方法一:
<device1>
<configurationForModule1 />
<configurationForModule2 />
</device1>
<device2>
<configurationForModule1 />
<configurationForModule2 />
</device2>
然后使用类似于以下示例:
public class Module1 {
private readonly _device1;
public Module1(Device1 device1) {
_device1 = device1;
// configuration for this module in _device1.Configuration.Module1
}
}
方法二:
<configurationForModule1>
<device1 />
<device2 />
</configurationForModule1>
<configurationForModule2>
<device1 />
<device2 />
</configurationForModule2>
然后使用类似于以下示例:
public class Module1 {
private readonly _device1;
public Module1(Module1Configuration configuration, Device1 device1) {
_device1 = device1;
// configuration for this module in configuration.Device1
}
}
另外:
模块可以解决如下问题:
- 从所有设备收集诊断数据
- 根据不同设备的数据计算
- 查看事件处理和执行设备命令
我应该如何构建配置?
根据您的解释,您项目的主要实体似乎是模块,而设备的目的是让模块完成它们的工作。如果这是真的,那么方法 2 似乎是最合乎逻辑的方法。
此外,第二种方法允许您轻松提供与设备不直接相关的模块配置(例如数据库连接、资源位置或日志记录);使用方法 1,您必须为每个设备复制此信息。
我的应用程序中有一些设备和一些模块使用设备来完成它们的工作。
配置结构有两种方法:
方法一:
<device1>
<configurationForModule1 />
<configurationForModule2 />
</device1>
<device2>
<configurationForModule1 />
<configurationForModule2 />
</device2>
然后使用类似于以下示例:
public class Module1 {
private readonly _device1;
public Module1(Device1 device1) {
_device1 = device1;
// configuration for this module in _device1.Configuration.Module1
}
}
方法二:
<configurationForModule1>
<device1 />
<device2 />
</configurationForModule1>
<configurationForModule2>
<device1 />
<device2 />
</configurationForModule2>
然后使用类似于以下示例:
public class Module1 {
private readonly _device1;
public Module1(Module1Configuration configuration, Device1 device1) {
_device1 = device1;
// configuration for this module in configuration.Device1
}
}
另外:
模块可以解决如下问题:
- 从所有设备收集诊断数据
- 根据不同设备的数据计算
- 查看事件处理和执行设备命令
我应该如何构建配置?
根据您的解释,您项目的主要实体似乎是模块,而设备的目的是让模块完成它们的工作。如果这是真的,那么方法 2 似乎是最合乎逻辑的方法。
此外,第二种方法允许您轻松提供与设备不直接相关的模块配置(例如数据库连接、资源位置或日志记录);使用方法 1,您必须为每个设备复制此信息。