我如何使用MEF在代码中注册类型

本文关键字:注册 类型 代码 何使用 MEF | 更新日期: 2023-09-27 18:18:01

我有一个需要在代码中注册的自定义类型实例:

container.RegisterType( typeof(Isome), myvar);

所以它可以像这样正常使用:

 [Import] 
 ISome var1 ;

如何获得对容器的引用?

我如何使用MEF在代码中注册类型

我不知道Prism,但在MEF中,您不向容器注册类型-这会引入依赖关系,从而破坏了代码解耦的目的。

要使ISome类型可用于MEF发现,您需要在实现ISome接口的类上放置[Export(typeof(ISome))]属性。

在组合中,MEF将看到ISome接口类型上的Import属性键,然后在ISome接口类型上查找匹配的Export键。它将找到带有Export属性的实现类。MEF将创建一个导出类的实例,并将其分配给import属性。

在组合步骤中,您需要提供一个类型或程序集的目录,以便MEF加载并执行匹配魔术。确保包含实现类的程序集位于该编目组中。