2
這裏是的ConfigurationSection類ConfigurationManager.GetSection總是給人對象使用默認值
using System.Configuration;
namespace CampusWebStore.Config
{
public class PoolerConfig : ConfigurationSection
{
[ConfigurationProperty("PoolId", IsRequired = true)]
public string PoolId { get; set; }
[ConfigurationProperty("Host", IsRequired = true)]
public string Host { get; set; }
[ConfigurationProperty("Port", IsRequired = true)]
public int Port { get; set; }
[ConfigurationProperty("Enabled", IsRequired = true)]
public bool Enabled { get; set; }
}
}
的web.config部分,定義
<section name="PoolerConfig" type="CampusWebStore.Config.PoolerConfig, CampusWebStore"/>
實際的章節
<PoolerConfig
PoolId="asdf-asdf-asdf-asdf"
Host="localhost"
Port="5000"
Enabled="true"
/>
然後是加載它的行(在Global.asax.cs中)
PoolerConfig poolerConfig = ConfigurationManager.GetSection("PoolerConfig") as PoolerConfig;
似乎無論我做什麼,我的PoolerConfig中的所有屬性都是默認值(空字符串,0整數等)。研究表明這應該很容易,但無濟於事我無法弄清楚這一點。
這是肯定的答案。我一定是被以前的開發者拋棄了。他做了一些稍微不同的事。他用正常的get/set backers定義了他的ConfigurationSection類,但是使用configSource屬性將它作爲xml文件加載到web.config中。謝謝您的幫助。 – pixelshaded