我在下面的方式定義配置節在我的app.config加載自定義欄目:配置系統初始化失敗錯誤,同時從app.config中
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="RegisterCompanies"
type="ConfigTest.RegisterCompaniesConfig, ConfigTest"
allowLocation="true"
allowDefinition="Everywhere"/>
</configSections>
<RegisterCompanies>
<Companies>
<Company name="Tata Motors" code="Tata"/>
<Company name="Honda Motors" code="Honda"/>
</Companies>
</RegisterCompanies>
</configuration>
要閱讀這些信息我已經創建了三個班在這樣的方式:RegisterCompaniesConfig類
public class RegisterCompaniesConfig : ConfigurationSection
{
public static RegisterCompaniesConfig GetConfig()
{
string path = Path.Combine(Application.StartupPath, "ConfigTest.exe.config");
Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(path);
RegisterCompaniesConfig serviceSection = ConfigurationManager.GetSection("RegisterCompanies") as RegisterCompaniesConfig;
return serviceSection;
//return (RegisterCompaniesConfig)System.Configuration.ConfigurationManager.GetSection("RegisterCompanies");
}
[System.Configuration.ConfigurationProperty("Companies")]
public Companies Companies
{
get
{
object o = this["Companies"]; return o as Companies;
}
}
}
然後公司類:
public class Companies : ConfigurationElementCollection
{
[System.Configuration.ConfigurationProperty("Company")]
public Company this[int index]
{
get
{
return base.BaseGet(index) as Company;
}
set
{
if (base.BaseGet(index) != null)
{ base.BaseRemoveAt(index); } this.BaseAdd(index, value);
}
}
protected override ConfigurationElement CreateNewElement()
{
return new Company();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((Company)element).Name;
}
}
,最後一個是公司類:
public class Company : ConfigurationElement
{
[ConfigurationProperty("name", IsRequired = true)]
public string Name
{
get
{
return this["name"] as string;
}
}
[ConfigurationProperty("code", IsRequired = true)]
public string Code
{
get
{
return this["code"] as string;
}
}
}
後
時,我想通過調用下面的方法來接取部分
var config = RegisterCompaniesConfig.GetConfig();
我得到的錯誤:配置系統初始化失敗 請任何人都看看上面的代碼,問題在哪裏,它看起來一切都很好....
該問題必須在app.config文件中,您可以完整顯示它? – RRUZ 2009-08-25 10:00:08
我已經添加了完整的app.config文件,請看看它... – 2009-08-25 10:20:16
你能爲你收到的錯誤顯示堆棧跟蹤嗎? – Rob 2009-08-25 10:35:06