MEF:如何检索类型的新实例?

Hou*_*man 3 .net c# mef

在我的课程中,我有一个类导入这样的类型:

[Import]
public ContactViewModel ContactViewModel { get; set; }
Run Code Online (Sandbox Code Playgroud)

类型定义如下:

[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(typeof(ContactViewModel))]
public class ContactViewModel {}
Run Code Online (Sandbox Code Playgroud)

我期待每当我从房产中读取,获得一个新的实例对吗?或者可能不是......我一直在使用同一个实例,在使用该属性时如何强制t使我成为一个新实例?

非常感谢,

Mat*_*ott 5

你确定你正在重组你的消费者阶层吗?在NonShared创建策略将确保一个新的实例被创建的每个部分需要撰写时间,所以我会检查它的另一面,这就是你的类[Import]-ing你的一部分.该类是否正确重组?

您的另一个选择是使用ExportFactory,例如:

[Import] public ExportFactory<ContactViewModel> ViewModelFactory { get; set; }
Run Code Online (Sandbox Code Playgroud)