每次我为此自定义部分执行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>
答案 0 :(得分:10)
您的dll是否称为Engine.dll?我认为不是,这就是问题所在。
好的,从sysinternals运行procmon。将过滤器设置为您的进程名称,并过滤result =“NAME NOT FOUND”。您将看到它正在寻找Engine.dll或Engine.exe的条目。查看它的查找位置,可能需要将文件复制到正在运行的文件夹中。