c# - ConfigurationManager.GetSection da error "No se pudo cargar el tipo... desde el ensamblaje..."
app-config system.configuration (2)
En la linea:
<section name="ProcessConfiguration" type="Configuration.ProcessConfigurationSection, Configuration" />
El nombre ''Configuración'' debe referirse a la DLL que está creando, por favor intente verificar esto y corregirlo si es necesario.
También creo que puede tener un error tipográfico, en su código el nombre de tipo es:
ProcessesConfigurationSection
(Tenga en cuenta los procesos vs proceso)
Mi archivo app.config es el siguiente:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="ProcessConfiguration" type="Configuration.ProcessConfigurationSection, Configuration" />
</configSections>
<ProcessConfiguration>
<processes>
<process name="Process1" />
</processes>
</ProcessConfiguration>
</configuration>
Tengo las siguientes clases (separadas) para obtener la configuración:
namespace Configuration
{
using System.Configuration;
public class ProcessesConfigurationSection : ConfigurationSection
{
[ConfigurationProperty("processes", IsDefaultCollection = false)]
[ConfigurationCollection(typeof(ProcessCollection))]
public ProcessCollection Processes
{
get
{
return (ProcessCollection)base["processes"];
}
}
}
}
namespace Configuration
{
using System.Configuration;
public class ProcessCollection : ConfigurationElementCollection
{
public ProcessConfig this[int index]
{
get
{
return (ProcessConfig)BaseGet(index);
}
set
{
BaseAdd(index, value);
}
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ProcessConfig)element).Name;
}
protected override ConfigurationElement CreateNewElement()
{
return new ProcessConfig();
}
}
}
namespace Configuration
{
using System.Configuration;
public class ProcessConfig : ConfigurationElement
{
[ConfigurationProperty("name", IsRequired = true, IsKey = true)]
public string Name
{
get
{
return (string)this["name"];
}
set
{
this["name"] = value;
}
}
}
}
Sin embargo cuando llego a esta línea de código:
var processConfigurationSection = ConfigurationManager.GetSection("ProcessConfiguration") as ProcessesConfigurationSection;
Me sale el error que dice:
Se produjo un error al crear el controlador de la sección de configuración para ProcessConfiguration: No se pudo cargar el tipo ''Configuration.ProcessConfigurationSection'' del ensamblaje ''Configuración''.
Estoy completamente perplejo, si alguien me puede ayudar realmente lo apreciaría.
Este error se ha generado porque el ensamblaje invocador no pudo cargar el tipo de clase en el ensamblaje especificado. Este error puede deberse a un espacio después del nombre de tipo (lo que me ha ocurrido), por ejemplo, la siguiente sección de configuración
type="Configuration.ProcessConfigurationSection , Configuration"
generará este error también.