Ninject XML扩展 - 插件架构

时间:2012-11-09 13:38:34

标签: c# dependency-injection ninject ninject-extensions

我正在使用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扩展名解析的文件夹中加载类型吗?

2 个答案:

答案 0 :(得分:0)

约定扩展是否可以通过根据存在的DLL加载绑定来解决问题?如果没有,您能否详细解释一下您的问题?

答案 1 :(得分:0)

我使用配置文件中的“probing”元素解决了这个问题。它包括分辨率范围内的文件夹。

<runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="Plugins"/>
      </assemblyBinding>
 </runtime>

更多信息here

感谢所有人。