Свойства ConfigurationSectionGroup.Sections всегда пусты
Это простое приложение Windows Forms, один экран и ничего более. Я создал свой собственный обработчик ConfigurationSection
Сборка RemoteFactoryManager.Utils.dll
public class EnvironmentSection : ConfigurationSection
{
public EnvironmentSection() { }
public EnvironmentSection( string description,
string path,
string selected)
{
this.Description = description;
this.Path = path;
this.Selected = selected;
}
[ConfigurationProperty("description", IsRequired = true)]
public string Description
{
get { return this["description"] as string; }
set { this["description"] = value; }
}
[ConfigurationProperty("path", IsRequired = true)]
public string Path
{
get { return this["path"] as string; }
set { this["path"] = value; }
}
[ConfigurationProperty("selected", IsRequired = false)]
public string Selected
{
get { return this["selected"] as string; }
set { this["selected"] = value; }
}
}
Это мой app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="Environments">
<section name="DEV" type="RemoteFactoryManager.Utils.EnvironmentSection, RemoteFactoryManager.Utils" />
<section name="DEV1" type="RemoteFactoryManager.Utils.EnvironmentSection, RemoteFactoryManager.Utils" />
<section name="DEV2" type="RemoteFactoryManager.Utils.EnvironmentSection, RemoteFactoryManager.Utils" />
</sectionGroup>
</configSections>
<Enviroments>
<DEV description="Development" path="\\SomeServer\C$\somepath" selected="1" />
<UAT1 description="Devlpmnt - 1" path="\\SomeServer1\C$\somepath" />
<UAT2 description="Devlpmnt - 2" path="\\SomeServer2\C$\somepath" />
</Enviroments>
</configuration>
Все еще в сборке RemoteFactoryManager.Utils.dll
public class ConfigReader
{
private List<Env.Environment> _env;
public List<Env.Environment> Environments { get { return _env; } }
public void LoadEnvironments()
{
Configuration oConfiguration = ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
ConfigurationSectionGroup oSectionGroup =
oConfiguration.GetSectionGroup("Environments") as
ConfigurationSectionGroup;
if (oSectionGroup != null)
{
_env = new List<Env.Environment>();
foreach (EnvironmentSection oSection in oSectionGroup.Sections)
{
Env.Environment e = new Env.Environment();
e.Description = oSection.Description; // always empty
e.Path = oSection.Path; // always empty
e.Selected = oSection.Selected; // always empty
_env.Add(e);
}
}
}
.Exe код
private void frmMain_Load(object sender, EventArgs e)
{
ConfigReader c = new ConfigReader();
c.LoadEnvironments();
}
Моя проблема
oSection.Description, oSection.Path и oSection.Selected всегда пустые.
Что я делаю неправильно? Раньше это нормально работало в другом проекте. Разница лишь в том, что теперь файл app.config принадлежит.exe, а код, который обрабатывает разделы, находится в другой отдельной сборке.