查看参数构造一次

时间:2012-05-26 10:05:48

标签: c# .net-4.0 system.componentmodel

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

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

此视图模型对应于子窗口。当我运行子窗口一次,关闭它并尝试再次运行它时,我得到一个例外,告诉我我无法在关闭的窗口上调用ShowShowDialog。这是否意味着只创建了1个IItemDefView对象?我应该怎么做呢?

1 个答案:

答案 0 :(得分:2)

默认情况下,MEF将容器中的实例注册为单例。要更改此行为,需要在ImportAttribute中将属性Required CreationPolicy设置为NonShared。 请参阅ImportAttribute.RequiredCreationPolicy PropertyParts Lifetime