我正在使用ninject xml扩展来为同一个可执行文件(插件)提供不同的DAL。我的想法是使用ninject xml文件将所有这些文件(DLL)放在主应用程序的子文件夹中。Ninject XML扩展 - 插件体系结构
问题是ninject无法在xml中找到引用的绑定。它只适用于我将dll复制到主应用程序(.exe)的同一文件夹。
我试图加载内核
Assembly assembly = Assembly.LoadFrom(dll);
AppDomain.CurrentDomain.Load(assembly.GetName());
Kernel.Load(xmlFile);
但仍然does not工作之前,加载的DLL。 (错误:“不可能解决型‘的MyType’定义‘到’属性为”)
是否有人知道某种方式在ninject-XML文件或加载类型从另一个文件夹指一个具体的文件夹,可以使用ninject-xml扩展来解决?
似乎Ninject无法解析类型时,他们是在放在子文件夹(./Plugins/MyType.dll)中的DLL中声明。当它放在主文件夹中时,它工作正常。请注意,在这两种情况下,dll都不是从主项目引用的,它的想法是动态加载它们。 – Morvader
自定义文件夹不是.NET程序集解析查找的一部分:http://stackoverflow.com/questions/4145728/what -is-the-net-folder-search-hierarchy - 此外,你还没有说出实际的错误是什么。说它“仍然不起作用”并不能告诉我们你遇到的错误。也许如果你使用xml来指定要加载哪些库,并使用约定扩展从这些程序集中进行选择并创建绑定,那么可能有些东西可以解决你的问题。 –
问题在于ninject无法解析在xml中指定的绑定:“在'属性”中定义的Couldnt解析器类型MyType。无论如何,感谢解析查找链接,我解决了我的问题,将“探测”元素添加到配置中。如果你想写它作为答案,我会接受它。谢谢!。 – Morvader