我有一个父类类A,其变量定义为public string variable
。此变量 var 在定义为protected override void OnActionExecuting(ActionExecutingContext test)
的 OnActionExecuting
方法中初始化 子类从此类继承为public class classB : classA
但是,下面的代码失败
public class classB : classA{
string h;
public classB(){
h = this.variable
}
}
也就是说,变量 var 为空。但是,如果我在类A中声明一个公共变量变量2并动态初始化它public string variable2 = "test"
,我可以在控制器中检索它。如何编辑此代码,以便可以在继承类的构造函数中访问OnActionExecuting
中发生的初始化?
OnActionExecuting
是在构造函数之后调用的,因此:没有办法获取尚未发生的事情的值。
如果继承类需要一个仅在基类型的 OnActionExecuting
方法触发时才可用的值,则:然后访问它:
protected override void OnActionExecuting(ActionExecutingContext ctx)
{
base.OnActionExecuting(ctx);
h = this.var;
}
OnActionExecuting
很可能没有在classA
的构造函数中调用,这意味着创建classB
新实例的人都会调用它。因此,只有在构造函数运行完成之后才会调用它。
因此,您的要求是不可能的。
想想吧:
在订购披萨之前,您不能吃掉它。