提前感谢您的帮助。
我正在使用继承来利用基本模式中的属性,如下所示:HomeModel : BaseModel
。
这是按预期工作的,但现在我想更进一步。我想再使用一个级别,以便新模型继承HomeModel
。
我创建了一个像这样的NavModel
public class NavModel : HomeModel {
public string CloudVersion{get;set;}
public IMxUser Usr {get;set;}
public ILocalizer Localizer {get;set;}
public NavModel(IMxUser mxUser, ILocalizer localizer)
{
Localizer = localizer;
Usr = mxUser;
CloudVersion = ConfigurationManager.AppSettings["cloudVersion"];
}
}
但它引发了错误
'HomeModel' does not contain a constructor that takes 0 arguments.
像我这样菊花链是不是一个坏主意?我究竟做错了什么?有更好的方法吗?
更新
在添加空构造函数之前,这是标准的HomeModel构造函数:
public HomeModel(IMxUser mxUser, ILocalizer localizer)
{
Localizer = localizer;
Usr = mxUser;
BomSearchJavascriptMethod = GetSearchJavascriptMethod(MnxConst.SearchOptions.BILL_OF_MATERIAL, EnterBOMSearchKeyStr);
POSearchJavascriptMethod = GetSearchJavascriptMethod(MnxConst.SearchOptions.PURCHASE_ORDER_NUMBER, EnterBOMSearchKeyStr);
}
如果我可以在相关模型中使用标准HomeModel
,那将会很好,但我不知道如何使用我当前的参考方法传递这些。
答案 0 :(得分:3)
你必须使用这样的初始化程序初始化基类:
public HomeModel(IMxUser mxUser, ILocalizer localizer)
: base(mxUser, localizer)
{
// ...
}