【发布时间】:2012-04-20 07:58:48
【问题描述】:
我有一个抽象基类和一个派生类。我正在尝试使用 MEF 通过在基类中使用 [ImportingConstructor] 来注入对我的 WindowManager 的引用。 即。
[ImportingConstructor]
public SomeViewModel(IWindowManager windowmanager) {...}
问题是,在我添加它之前,我所拥有的只是没有参数构造函数,而派生类正在抱怨如果我向基类添加一个无参数构造函数,则 WindowManager 永远不会被注入。
使用我目前有限的知识,我能想到的唯一方法是将管理器导入更改为属性导入,并且只有一个无参数默认构造函数。这让我很困扰,因为一般规则似乎更喜欢对必需依赖项进行构造函数注入,而对可选依赖项进行属性注入。
我可以在我的子类中添加覆盖的 [ImportingConstructor],但这似乎是不必要的代码重复。
有没有更好的方法来做到这一点,即确保在创建派生类时注入我的依赖项?
【问题讨论】:
-
你能澄清一下这个问题吗,具体的问题是什么?