gpt4 book ai didi

c# - .net 自定义配置部分元素是否必须具有键?

转载 作者:太空狗 更新时间:2023-10-29 23:15:40 25 4
gpt4 key购买 nike

考虑以下配置部分:

<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>

我已经将其解析实现为 c# IConfigSectionHandler。现在我了解到此方法已被弃用,我应该使用 ConfigurationSection、ConfigurationElements 和 ConfigurationElementCollections。我可以毫无问题地理解网络上的示例(msdn 和 SO)。但是到目前为止我看到的所有示例都使用其中一个属性作为键。我的元素作为插件名称、MessageType 和 MessageSubType 的组合是独一无二的。 MessageSubType 也是可选的。我可以使用推荐的类解析一个看起来像这样的配置部分,还是我必须更改我的配置以适应 ConfigurationClasses 的制度,例如添加“虚拟”键?

最佳答案

没有。

但是为了避免使用 key ,您需要做更多的工作。

具体类型 KeyValueConfigurationCollection 允许通过设置一些属性轻松创建配置集合。

要创建更个性化的集合,需要扩展摘要 ConfigurationElementCollection (但这仍将基于 <appSettings> 使用的添加/删除/清除模型。但允许配置元素名称​​但是这仍然基于每个成员都有一个键值集合的(这由 GetElementKey 的重写决定,因此不需要直接包含在 XML 中)。

或者,您可以通过扩展 ConfigurationElement 创建您自己的、完全自定义的配置集合。 ,但您需要自己完成解析子元素的所有工作(记住 ConfigurationElementCollection 本身是 ConfigurationElement 的子类)。

关于c# - .net 自定义配置部分元素是否必须具有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com