MEF:如何检索类型的新实例
本文关键字:类型 新实例 实例 检索 何检索 MEF | 更新日期: 2023-09-27 18:04:56
在我的类中,我有一个导入类型的类:
[Import]
public ContactViewModel ContactViewModel { get; set; }
类型定义如下:
[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(typeof(ContactViewModel))]
public class ContactViewModel {}
我期待每当我从属性读取,得到一个新的实例对吗?或者不是……我一直得到相同的实例,如何在使用属性时强制t创建一个新实例?
许多谢谢,您确定正在重新组合您的消费者类吗?NonShared
创建策略将确保每次需要组合部件时创建一个新实例,因此我会检查它的另一边,这是您正在[Import]
创建部件的类。这个类被正确地重组了吗?
您的另一个选择是使用ExportFactory
,例如:
[Import] public ExportFactory<ContactViewModel> ViewModelFactory { get; set; }
您应该创建一个工厂并将其导出,然后将其用作属性。MEF部件创建策略适用于当MEF构造具有依赖关系的对象时,而不是当这些依赖关系被访问时。