我在自定义配置部分加载时遇到问题。
有问题的部分是什么?我有两个元素(第一个和第二个),我在choice元素中的XSD架构下定义。用户在配置时只能选择一个。让我们这样说:
<customSection>
<First attribute ="test" />
</customSection>
或
<customSection>
<Second attribute ="test" attribute2 ="np" />
</customSection>
当我加载该配置时,在两种情况下都会加载配置元素First和Second,它们不会为null(对象将为空)。 在第一种情况下,如何实现第二个对象为空?
谢谢
答案 0 :(得分:2)
首先创建映射类
public class YourCustomConfig : ConfigurationSection
{
....
}
完整示例:http://nnish.com/2009/09/17/custom-configuration-section-in-c/
第二,你得到你的数据
YourCustomConfig section = ConfigurationManager.GetSection("customSection") as YourCustomConfig;
答案 1 :(得分:0)
我找到了我需要的东西。每个配置元素都具有属性ElementInformation(http://msdn.microsoft.com/en-us/library/system.configuration.elementinformation.aspx),其中还有属性 IsPresent ,表示配置文件中是否存在特定配置元素。官方说明:
IsPresent:获取一个值,该值指示关联的ConfigurationElement对象是否在配置文件中。
有了这个,我可以跟踪哪些元素被加载,哪些元素不被加载。以前我不能说与null相同或不同。它将永远不会与null独立,因为它具有值。