Mar*_*ius 3 .net c# configurationsection
ConfigurationSection我在网上找到的例子(例如)都有如下代码:
public class ConnectionSection : ConfigurationSection
{
[ConfigurationProperty("Servers")]
public ServerAppearanceCollection ServerElement
{
get { return ((ServerAppearanceCollection)(base["Servers"])); }
set { base["Servers"] = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
为什么使用方括号从基数访问值"Servers"?是从xml创建此对象时使用的setter,还是用于覆盖xml文件中的值的setter?如果是这样,为什么在此属性上设置属性?
为什么使用方括号从基数访问值"Servers"?
因为基类ConfigurationSection不知道它的继承者将实现什么属性.
因此它公开了一个字符串索引器:this[string]它允许您访问从配置中读取的值.
这是一个设计决定..NET团队也可以选择使用反射来获取和设置继承者的属性,但决定不这样做.(当然,在配置部分中会有很多反映,但直到public ServerAppearanceCollection ServerElement { get; set; }可行的点为止).