自定义ConfigurationSection类型未正确加载

时间:2010-11-24 16:28:21

标签: c# .net configuration

每次我为此自定义部分执行ConfigurationManager.GetSection("registeredPlugIns")时,都会收到此错误:

为registeredPlugIns创建配置节处理程序时出错:

  

无法加载类型'Engine.PlugInArch.PlugInConfigurationSection'   来自程序集'System.Configuration,Version = 2.0.0.0,Culture = neutral,   公钥= b03f5f7f11d50a3a”。

为什么要尝试从System.Configuration加载类型而不是我要求的程序集?

这是我的章节代码:

namespace Engine.PlugInArch
{
    public class PlugInConfigurationSection : ConfigurationSection
    {
        [ConfigurationProperty("plugIns", IsDefaultCollection = false),
         ConfigurationCollection(typeof(PlugInCollection), AddItemName = "addPlugin")]
        public PlugInCollection PlugIns
        {
            get { return this["plugIns"] as PlugInCollection; }
        }

    }
}

这是我的app.config

<configuration>
    <configSections>
    <section name="registeredPlugIns" type="Engine.PlugInArch.PlugInConfigurationSection, Engine"/>
    </configSections>
        ...
    <registeredPlugIns>
       <plugIns>
           <addPlugIn DllName="ProcessorPlugin.dll"/>
       </plugIns>
     </registeredPlugIns>

</configuration>

1 个答案:

答案 0 :(得分:10)

您的dll是否称为Engine.dll?我认为不是,这就是问题所在。

好的,从sysinternals运行procmon。将过滤器设置为您的进程名称,并过滤result =“NAME NOT FOUND”。您将看到它正在寻找Engine.dll或Engine.exe的条目。查看它的查找位置,可能需要将文件复制到正在运行的文件夹中。