我有一个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
。为什么会这样?我需要它不是null
中的context_BeginRequest
,因为我想将当前文化设置在一个地方,然后在所有控制器中使用它。