C# 如何使用MEF注册输入代码?
我有一个需要在代码中注册的自定义类型实例:C# 如何使用MEF注册输入代码?,c#,.net,dependency-injection,prism,mef,C#,.net,Dependency Injection,Prism,Mef,我有一个需要在代码中注册的自定义类型实例: container.RegisterType( typeof(Isome), myvar); 所以它可以像这样正常使用: [Import] ISome var1 ; 如何获取对容器的引用?我不知道Prism,但在MEF中,您不向容器注册类型-这引入了一种依赖关系,从而破坏了代码解耦的目的 要使ISome类型可供MEF发现,您需要在实现ISome接口的类上添加[Export(typeof(ISome))]属性 在composition中,MEF
container.RegisterType( typeof(Isome), myvar);
所以它可以像这样正常使用:
[Import]
ISome var1 ;
如何获取对容器的引用?我不知道Prism,但在MEF中,您不向容器注册类型-这引入了一种依赖关系,从而破坏了代码解耦的目的 要使
ISome
类型可供MEF发现,您需要在实现ISome
接口的类上添加[Export(typeof(ISome))]
属性
在composition中,MEF将看到在ISome接口类型上键入的导入属性,然后查找在ISome接口类型上键入的匹配导出。它将找到具有Export属性的实现类。MEF将创建导出类的实例,并将其分配给导入属性
在合成步骤中,您需要为MEF提供一个类型或程序集的目录,以便加载并执行其匹配魔术。确保包含您的实现类的程序集位于该目录组中。我理解,但实现ISome的类型需要一些自定义初始化,因此问题是什么样的自定义初始化?