2010-11-24 61 views
5

每次我这个自定义栏目做了ConfigurationManager.GetSection("registeredPlugIns")我收到此错误:自定义的ConfigurationSection类型不正确加载

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

Could not load type 'Engine.PlugInArch.PlugInConfigurationSection' from assembly 'System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=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> 

回答

10

正所谓Engine.dll您的DLL?我认为不是,那是问题所在。

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

+0

它实际上是Engine.exe会这么重要吗?它们的类型位于引用此app.config的程序集中。 – 2010-11-24 16:36:01

相关问题