ConfigurationProperty的典型示例

use*_*092 3 .net c#

我正在尝试使用.NET配置并了解自定义部分,元素等.

似乎实现这些自定义部分需要显式声明getter和setter,通常会导致代码膨胀.

例如这里:

http://msdn.microsoft.com/en-us/library/2tw134k3.aspx

具体来说,我们似乎有必要在get和set方法中显式返回和设置内容.

// Create a "remoteOnly" attribute.
[ConfigurationProperty("remoteOnly", DefaultValue = "false", IsRequired = false)]
public Boolean RemoteOnly
{
  get
  { 
    return (Boolean)this["remoteOnly"]; 
  }
  set
  { 
    this["remoteOnly"] = value; 
  }
}
Run Code Online (Sandbox Code Playgroud)

有以下几点

[ConfigurationProperty("remoteOnly", DefaultValue = "false", IsRequired = false)]
public Boolean RemoteOnly { get; set }
Run Code Online (Sandbox Code Playgroud)

不等同于上述.

这是真的吗 - 即使有这样的香草属性,我们也必须冗长吗?

Ada*_*lls 5

是的,因为你依赖的是外部存储机制(基类的字典最终会填充配置文件).

另外,如果你担心代码臃肿,你会担心错误的事情.写一次,再也不看了.您不应该有太多代码处理自定义配置设置,它会使您的代码库膨胀.可能是一个小小的凹凸,但不是臃肿.此外,我很高兴你现在处理这个问题而不是VS2005之前 - 你必须编写更多的代码(你必须手动解析XML部分).

最后,如果你仍然讨厌那么多,你总是可以使用"我需要的最后一个配置部分处理程序":https: //sites.google.com/site/craigandera/craigs-stuff/clr-workings/the -last配置节处理程序-I-LL-不断需要

他写这篇文章已经有很长一段时间了,但它仍然可以正常工作.