0

我有以下代码作为ViewModel类的构造函数:

    [ImportingConstructor]
    public ItemDefViewModel(IItemDefView view)
        :base(view)
    {
        _Item = new ItemModel();
    }

这个视图模型对应一个子窗口。当我运行一次子窗口时,关闭它并尝试再次运行它,我收到一个异常,告诉我我不能在关闭的窗口上Show调用。ShowDialog这是否意味着只IItemDefView创建了 1 个对象?我该怎么办?

4

1 回答 1

2

默认情况下,MEF 将容器中的实例注册为单例。要更改此行为,您需要将 ImportAttribute 中的属性 RequiredCreationPolicy 设置为 NonShared。请参阅ImportAttribute.RequiredCreationPolicy 属性部件生命周期

于 2012-05-26T10:26:38.047 回答