Jan*_*sen 5 c# nested configurationsection
Concider以下配置部分:
<PluginSection>
<Plugins>
<Plugin name="Plug1">
<add MessageType="1" MessageSubType="1" Ringtone="chime.wav" Vibrate="1000:0:1"/>
<add MessageType="1" MessageSubType="2" Ringtone="chime2.wav" Vibrate="1000:0:1"/>
</Plugin>
<Plugin name="Plug2">
<add MessageType="1" MessageSubType="1" Ringtone="chime.wav"/>
<add MessageType="1" MessageSubType="2" Ringtone="chime2.wav"/>
<add MessageType="2" Ringtone="chime3.wav"/>
</Plugin>
</Plugins>
</PluginSection>
Run Code Online (Sandbox Code Playgroud)
我已经将其解析为ac#IConfigSectionHandler.现在我明白这个方法已被弃用,我应该使用ConfigurationSection,ConfigurationElements和ConfigurationElementCollections.我在网上(msdn和SO)理解这个例子没有问题.但到目前为止我见过的所有例子都使用了其中一个属性作为关键.我的元素作为插件名称,MessageType和MessageSubType的组合是唯一的.MessageSubType也是可选的.我可以使用推荐的类解析看起来像这样的配置部分,或者我是否必须通过添加"虚拟"键来改变我的配置以适应ConfigurationClasses的制度?
没有.
但要避免按键,你需要做更多的工作.
具体类型KeyValueConfigurationCollection允许通过设置一些属性轻松创建配置集合.
要创建一个更加自定义的集合,需要扩展抽象ConfigurationElementCollection(但这仍然基于.使用的添加/删除/清除模型<appSettings>.但允许配置元素名称,但这仍然基于每个元素的一个键值集合的成员(这由覆盖确定,GetElementKey因此不需要直接包含在XML中).
或者,您可以通过扩展来创建自己的,完全自定义的配置集合ConfigurationElement,但是您需要自己完成解析子元素的所有工作(记住ConfigurationElementCollection它本身就是子类ConfigurationElement).
| 归档时间: |
|
| 查看次数: |
3836 次 |
| 最近记录: |