我有一个父类classA,其变量定义为public string variable
。此变量var在定义为OnActionExecuting
的{{1}}方法中初始化。子类从此类继承为protected override void OnActionExecuting(ActionExecutingContext test)
但是,下面的代码失败
public class classB : classA
即,变量var为null。但是,如果我在classA中声明一个公共变量variable2并在运行public class classB : classA{
string h;
public classB(){
h = this.variable
}
}
初始化它,我可以在控制器中检索它。如何编辑此代码,以便可以在继承类的构造函数中访问public string variable2 = "test"
中发生的初始化?
答案 0 :(得分:1)
OnActionExecuting
很可能未在classA
的构造函数中调用,这意味着由创建classB
的新实例的人调用。因此,在构造函数运行完成后,它将仅被调用。
所以,你要求的是不可能的。
想一想:
在订购之前,你不能吃披萨。
答案 1 :(得分:1)
OnActionExecuting
,因此:无法获取尚未发生的内容的值。
如果继承类需要一个仅在基类型的OnActionExecuting
方法触发时才可用的值,那么: 然后访问它 :
protected override void OnActionExecuting(ActionExecutingContext ctx)
{
base.OnActionExecuting(ctx);
h = this.var;
}