我正在使用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