[英]Adding a new parameter to constructor on the base class means I have to refactor all of the classes that inherit from it?
[英]Adding parameter to base class constructor, auto-add to all descendants
我正在尝试改进一些代码以在我的视图 Model 中取出服务定位器的初始化和使用,以便容器可以在构造函数中创建它们。 但是有数百个后代的基类发生了变化,这需要很长时间才能手动修复每个人。
Visual Studio 或任何其他加载项是否可以为您执行此操作? 在后代上,它需要将其添加到主构造函数中,并将其传递给基本构造函数。 全部只有一个构造函数。
例如,我刚刚将 someNewInjectedClass 参数添加到下面的基本 class 构造函数中:
public class BaseClass
{
private ISomeNewInjectedClass _someNewInjectedClass;
public BaseClass(ISomeNewInjectedClass someNewInjectedClass)
{
_someNewInjectedClass = someNewInjectedClass;
}
}
这需要添加到我的后代中,目前是这样的:
public class OneOfManyDecendants : BaseClass
{
public OneOfManyDecendants()
: base()
{
}
}
变成这样:
public class OneOfManyDecendants : BaseClass
{
public OneOfManyDecendants(ISomeNewInjectedClass someNewInjectedClass)
: base(someNewInjectedClass)
{
}
}
不是我的确切问题的完全答案,但我将在 @sinatr 的建议中使用 go 的相关帖子:使用 class 作为基本参数的单个参数
这似乎是我们前进的最佳方式,并且将来可以更容易地改变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.