2016-03-22 126 views
1

我有第三方DLL,在這個DLL中是這樣的層次結構:class Node實現接口INode。這個DLL使用Ninject綁定。我的應用程序使用這個dll和Prism和MEF作爲IoC容器。我之前沒有在Prism和MEF中練習,所以我想要做的一件事就是將INode綁定到Node。 我沒有訪問索引節點和節點,所以寫水木清華一樣,我不能:WPF MEF和第三方庫

[Export(typeof(INode))] 
class Node : INode{...} 

在Ninject我想在這樣的方式做到了:

Bind<INode>().To<Node>(); 

我能做些什麼像MEF那樣?日Thnx。

回答

0

看看MEF's Convention Model。你可以用它來導出你不能控制的類型。例如:

var registration = new RegistrationBuilder(); 
registration.ForType<Node>().Export<INode>(); 
var catalog = new AssemblyCatalog(typeof(Node).Assembly, registration); 
var container = new CompositionContainer(catalog); 

另一種方式是繼承Node在自己的代碼並將其導出:

[Export(typeof(INode))] 
class MyNode : Node { }