我如何使用MEF在代码中注册类型
本文关键字:注册 类型 代码 何使用 MEF | 更新日期: 2023-09-27 18:18:01
我有一个需要在代码中注册的自定义类型实例:
container.RegisterType( typeof(Isome), myvar);
所以它可以像这样正常使用:
[Import]
ISome var1 ;
如何获得对容器的引用?
我不知道Prism,但在MEF中,您不向容器注册类型-这会引入依赖关系,从而破坏了代码解耦的目的。
要使ISome
类型可用于MEF发现,您需要在实现ISome
接口的类上放置[Export(typeof(ISome))]
属性。
在组合中,MEF将看到ISome接口类型上的Import属性键,然后在ISome接口类型上查找匹配的Export键。它将找到带有Export属性的实现类。MEF将创建一个导出类的实例,并将其分配给import属性。
在组合步骤中,您需要提供一个类型或程序集的目录,以便MEF加载并执行匹配魔术。确保包含实现类的程序集位于该编目组中。