首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConfigurationProperty的规范示例

ConfigurationProperty的规范示例
EN

Stack Overflow用户
提问于 2012-05-09 04:53:18
回答 2查看 5.5K关注 0票数 4

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

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

例如:

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

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

代码语言:javascript
复制
// Create a "remoteOnly" attribute.
[ConfigurationProperty("remoteOnly", DefaultValue = "false", IsRequired = false)]
public Boolean RemoteOnly
{
  get
  { 
    return (Boolean)this["remoteOnly"]; 
  }
  set
  { 
    this["remoteOnly"] = value; 
  }
}

包含以下内容

代码语言:javascript
复制
[ConfigurationProperty("remoteOnly", DefaultValue = "false", IsRequired = false)]
public Boolean RemoteOnly { get; set }

不等同于上面的。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-09 05:05:14

是的,因为您依赖于外部存储机制(基类的字典,它最终填充配置文件)。

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

最后,如果你仍然讨厌它,你可以使用“我所需要的最后一个配置节处理程序”:https://sites.google.com/site/craigandera/craigs-stuff/clr-workings/the-last-configuration-section-handler-i-ll-ever-need

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

票数 5
EN

Stack Overflow用户

发布于 2012-05-09 05:04:43

更简洁的表单{ get; set; }扩展到使用私有数据成员(如果我没记错的话)。这只是C#的语法糖,与配置系统没有任何关系。

对于ConfigurationProperty,您需要访问当前对象上的索引器来存储/检索值,因为系统就是这样设计的。您是对的,它有点冗长,但没有真正的方法可以绕过它-这就是值必须被存储/检索的方式。

我可以推荐一些Code Snippets让您更容易(也不容易出错)创建这些属性吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10506323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档