加载自定义配置部分问题

时间:2013-03-22 15:06:34

标签: c#

我在自定义配置部分加载时遇到问题。

有问题的部分是什么?我有两个元素(第一个和第二个),我在choice元素中的XSD架构下定义。用户在配置时只能选择一个。让我们这样说:

<customSection>
  <First attribute ="test" />    
</customSection>

<customSection>
  <Second attribute ="test" attribute2 ="np" />  
</customSection>

当我加载该配置时,在两种情况下都会加载配置元素First和Second,它们不会为null(对象将为空)。 在第一种情况下,如何实现第二个对象为空?

谢谢

2 个答案:

答案 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独立,因为它具有值。