代码之家  ›  专栏  ›  技术社区  ›  petko_stankoski

从实现IHttpModule的类调用时,声明为null,但从控制器访问时,声明不为null

  •  0
  • petko_stankoski  · 技术社区  · 8 年前

    我有一个API应用程序,其中包含以下代码:

    public class MyModule : IHttpModule
    {
        public void Dispose() { }
    
        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(context_BeginRequest);
        }
    
        void context_BeginRequest(object sender, EventArgs e)
        {
            var myClaim = (string)new ClaimProvider().GetClaim(Thread.CurrentPrincipal, CustomClaimTypes.Culture);            
        }
    }
    

    然后在控制器中:

    public MyViewModel Get(int id)
    {
        return GetById(id, new ClaimProvider().GetClaim(Thread.CurrentPrincipal, CustomClaimTypes.Culture));
    }
    

    正如你所见,在这两个地方我都称之为方法 GetClaim() 使用相同的参数。在控制器中,它给出了一个结果。在 context_BeginRequest 事件,它返回 null .为什么会这样?我不想这样 无效的 在里面 上下文_BeginRequest ,因为我想在一个地方设置当前区域性,然后在所有控制器中使用它。

    0 回复  |  直到 8 年前