Impossible d'obtenir ma section de configuration personnalisée

Je suis en train de créer une section de configuration pour charger la liste des "fours" mon application surveille. C'est ma première expérience avec des sections de configuration et j'ai essayé de suivre les exemples; mais, je ne peux pas comprendre ce que je suis absent.

Lorsque j'essaie d'obtenir de la section de configuration, j'obtiens l'exception suivante:

Une erreur s'est produite de la création du gestionnaire de section de configuration pour BurnIn: impossible de charger le type 'BurnIn.L'INTERFACE utilisateur.BurnInConfigurationSection "de l'assemblée" du Système.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. (C:\MKS\BurnIn\PC_SW\bin\BurnIn.UI.vshost.exe.config ligne 8)

Dans mon main j'ai essayé:
Système.La Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.Aucun);
si (config.Sections[BurnInSection] == null)
...

BurnInConfigurationSection burnInConfigSection = config.GetSection(BurnInSection) as BurnInConfigurationSection; 

BurnInConfigurationSection burnInConfigSection = ConfigurationManager.GetSection(BurnInSection) as BurnInConfigurationSection;

Tout semble en résulter dans la même exception

Quand je regarde config.FilePath il est "C:\MKS\BurnIn\PC_SW\bin\BurnIn.UI.vshost.exe.config" que j'ai vérifié correspond à l'application.fichier de configuration.

Voici ma configuration classes:

namespace BurnIn.UI
{
///<summary>
///BurnIn Application configuration section in app.config
///</summary>
public class BurnInConfigurationSection : ConfigurationSection
{
[ConfigurationProperty("Ovens", IsDefaultCollection = false)]
[ConfigurationCollection(typeof(OvenCollection),
AddItemName = "add",
ClearItemsName = "clear",
RemoveItemName = "remove")]
public OvenCollection Ovens
{
get { return (OvenCollection)base["Ovens"]; }
set { base["Ovens"] = value; }
}
}
///<summary>
///Oven configuration information
///</summary>
public class OvenConfig : ConfigurationElement
{
public OvenConfig() { }
public OvenConfig(string nickName, string mesName, string ip, int slotCount)
{
NickName = nickName;
MesName = mesName;
IP = ip;
SlotCount = slotCount;
}
[ConfigurationProperty("NickName", DefaultValue = "OvenName", IsRequired = true, IsKey = true)]
public string NickName
{
get { return (string)this["NickName"]; }
set { this["NickName"] = value; }
}
[ConfigurationProperty("MesName", DefaultValue = "MesName", IsRequired = true, IsKey = true)]
public string MesName
{
get { return (string)this["MesName"]; }
set { this["MesName"] = value; }
}
[ConfigurationProperty("IP", DefaultValue = "10.130.110.20", IsRequired = true, IsKey = false)]
public string IP
{
get { return (string)this["IP"]; }
set { this["IP"] = value; }
}
[ConfigurationProperty("SlotCount", DefaultValue = "20", IsRequired = true, IsKey = false)]
public int SlotCount
{
get { return (int)this["SlotCount"]; }
set { this["SlotCount"] = value; }
}
}
///<summary>
///Collection of Oven Configs
///</summary>
public class OvenCollection : ConfigurationElementCollection
{
public OvenCollection()
{
}
public OvenConfig this[int index]
{
get { return (OvenConfig)BaseGet(index); }
set
{
if (BaseGet(index) != null)
{
BaseRemoveAt(index);
}
BaseAdd(index, value);
}
}
public void Add(OvenConfig ovenConfig)
{
BaseAdd(ovenConfig);
}
public void Clear()
{
BaseClear();
}
protected override ConfigurationElement CreateNewElement()
{
return new OvenConfig();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((OvenConfig)element).NickName;
}
public void Remove(OvenConfig ovenConfig)
{
BaseRemove(ovenConfig.NickName);
}
public void RemoveAt(int index)
{
BaseRemoveAt(index);
}
public void Remove(string name)
{
BaseRemove(name);
}
}
}

Ici est l'une de mes applications.config:

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Biotronik.NGMP.DAL.Sources.DalBaseSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<section name="BurnIn" type="BurnIn.UI.BurnInConfigurationSection"/>
</configSections>
<applicationSettings>
<Biotronik.NGMP.DAL.Sources.DalBaseSettings>
<setting name="ConfigFileName" serializeAs="String">
<value>DalConfig.xml</value>
</setting>
<setting name="MappingFileName" serializeAs="String">
<value>BurnInTestPlanMap.tpx</value>
</setting>
</Biotronik.NGMP.DAL.Sources.DalBaseSettings>
</applicationSettings>
<connectionStrings>
<add name="BurnInConnection" connectionString="metadata=res://*/BurnIn.csdl|res://*/BurnIn.ssdl|res://*/BurnIn.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=XXXX;PASSWORD=xxxx;PERSIST SECURITY INFO=True;USER ID=XXXX&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
<log4net configSource="BurnInLog4net.config"/>
<BurnIn>
<Ovens>
<add NickName="Mark's Oven" MesName="MESBOven" IP="10.130.110.20" SlotCount="5"/>
<add NickName="Real Oven" MesName="MESOven1" IP="10.130.110.50" SlotCount="20"/>
</Ovens>
</BurnIn>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>

source d'informationauteur markshancock