技术开发 频道

揭开.NET 2.0配置隐藏的秘密

  一旦你完成了,就是这样。此自定义配置节准备就绪。如果你喜欢写更少的代码,你可以不用构造器和静态字段,将每个值用过一个字符串键存储在默认的属性集合中。这将导致配置节本身要求更少的代码,但是要求整理上更少的定义。上述属性将被下面的代码的替代,静态字段和构造器可以删掉。顺便说一下,这就是纯粹的声明式方法:

  一个快速笔记,ConfigurationProperty真正是什么。默认,除非一个自定义元素明确地写出,所有的

    ConfigurationProperty都定义在一个App.config或Web.config文件中。创建和自定义配置元素集合将在后面讨论。

#region Properties

  
///

  
/// Gets the StringValue setting.

  
///

  [ConfigurationProperty(
"stringValue", IsRequired=true)]

  
public string StringValue

  {

  
get { return (string)base["stringValue"]; }

  }

  
///

  
/// Gets the BooleanValue setting.

  
///

  [ConfigurationProperty(
"boolValue")]

  
public bool BooleanValue

  {

  
get { return (bool)base["boolValue"]; }

  }

  
///

  
/// Gets the TimeSpanValue setting.

  
///

  [ConfigurationProperty(
"timeSpanValue")]

  
public TimeSpan TimeSpanValue

  {

  
get { return (TimeSpan)base["timeSpanValue"]; }

  }

  #endregion

  4、使用自定义配置节

  现在你已经为你的自定义配置写了一个类,则你需要在一个App.config文件中定义自定义节。你必须添加必要的XML,以便他能被.NET 2.0配置系统解析。App.config文件要改成下面的那样,ExampleSection才可用,假定上述代码已经被编译成Examples.Configuration.dll:


    stringValue
="A sample string value."

  boolValue
="true"

  timeSpanValue
="5:00:00"

  
/>

 

  及其子节点的一个快速解释。与内置的配置节不一样,他们是隐式定义的,自定义配置节必须显式地定义。这是通过元素和它相应的

子元素来完成的。应当指出,一个节的名字一般是很重要的,不能任意选择的。一会儿你就知道为什么了。一个配置节映射到一个完全限定的类名,其后是程序集名。选择性地,你可以指定区域性、版本、公钥(用于程序集的签名)值,如果你想确保只在特定的程序集的特定版本中搜索,当你的.config被解析时。在上面的例子中,字符串逗号之前的那部分是类名,后面那部分是程序集名(不包括.dll后缀)。

  最后,你可以在代码中用ConfigurationManager类使用你的自定义配置了。ConfigurationManager提供了一个叫做GetSection的方法,它允许你访问任何已经定义了的自定义设置。当你访问自定义配置节是,通常最好用动态转换和检查是否为空,就像这样:

0
相关文章