我正在使用ninject xml扩展来为相同的可执行文件(插件)提供不同的DAL。我的想法是使用ninject xml文件将所有这些(DLL)放在主应用程序的子文件夹中。
问题是ninject无法在xml中找到引用的绑定。它只有在我将dll复制到主应用程序(.exe)的同一文件夹时才有效。
我尝试在加载内核之前加载dll
Assembly assembly = Assembly.LoadFrom(dll);
AppDomain.CurrentDomain.Load(assembly.GetName());
Kernel.Load(xmlFile);
但仍然无法运作。 ( 错误:“无法解析'to'属性中定义的'MyType'类型 )
有人知道某种方法在ninject-xml文件中引用具体文件夹或从另一个可以使用ninject-xml扩展名解析的文件夹中加载类型吗?
答案 0 :(得分:0)
约定扩展是否可以通过根据存在的DLL加载绑定来解决问题?如果没有,您能否详细解释一下您的问题?
答案 1 :(得分:0)
我使用配置文件中的“probing”元素解决了这个问题。它包括分辨率范围内的文件夹。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Plugins"/>
</assemblyBinding>
</runtime>
更多信息here。
感谢所有人。