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