1

我有一个父类 classA ,其变量定义为public string variable. 此变量 var 在OnActionExecuting定义为的方法中初始化protected override void OnActionExecuting(ActionExecutingContext test)子类继承自此类public class classB : classA但是,下面的代码失败

public class classB : classA{
   string h;
   public classB(){
      h = this.variable
   }
 }

也就是说,变量 var 为空。但是,如果我在 classA 中声明一个公共变量 variable2 并动态初始化它public string variable2 = "test",我可以在控制器中检索它。如何编辑此代码,以便OnActionExecuting可以在继承类的构造函数中访问发生的初始化?

4

2 回答 2

1

OnActionExecuting很可能不会在 的构造函数中调用classA,这意味着由创建 的新实例的人调用classB因此,只有在构造函数运行完成后才会调用它。

因此,您的要求是不可能的。

想一想:
你不能在点披萨之前吃掉你的披萨。

于 2013-10-24T12:51:39.113 回答
1

OnActionExecuting在构造函数之后调用,因此:没有办法获取尚未发生的事情的值。

如果继承类需要一个仅在基类型的OnActionExecuting方法被触发时可用的值,那么:访问它然后

protected override void OnActionExecuting(ActionExecutingContext ctx)
{
    base.OnActionExecuting(ctx);
    h = this.var;
}
于 2013-10-24T12:51:49.423 回答