2011-10-02 83 views

回答

2

一般来说,它是不被路过的圆形容器一个伟大的想法,因为你最终使用它作为多服务定位机制,但你应该想这样做,你需要手动导出容器,如:

var container = new CompositionContainer(catalog); 
container.ComposeExportedValue(container); 

这将使你导入它:

[Import] 
public CompositionContainer Container { get; set; } 

或者:

[ImportingConstructor] 
public MyClass(CompositionContainer container) { } 
+0

我同意服务位置反模式。我做了很多环视四周没有找到我的问题的好回答 - 如果我有很多东西我需要导入到视图模型,我不愿意使用[导入](喜欢构造函数注入),怎么可以我在没有大量构造函数的情况下去解决这个问题(这个问题被继承放大,其中子类也必须提供巨大的构造函数)。任何好主意? –