棱镜与MEF访问组合对象

时间:2012-01-20 18:30:33

标签: prism mef

我正在使用Prism 4.0和MEF。我的应用程序使用其类的[ImportingConstructor]属性来构造对象。我需要访问构造的对象。我相信Prism有一个它创建的所有对象的列表。帮我找到SomeObjectListSomewhere,如下所示。

示例:

public class Foo
{
    private readonly INoob _noob;

    [ImportingConstructor]  
    public Foo(INoob noob)
    {
        _noob = noob
    }
}

public class NotNoob
{
    public GoAction()
    {
        // I need Access to all INoob constructed objects here
        foreach (INoob noob in SomeObjectListSomewhere)
        {
             noob.DoSomething();
        }
    }
}    

1 个答案:

答案 0 :(得分:1)

也许你可以做一些简单的事情,比如

[ImportMany]
IEnumerable<INoob> Noobs { get; set; }

然后使用Noobs集合,只需像在GoAction()中一样遍历列表。