我有以下温莎设置:
container.Register(
Component.For<HttpContextBase>().
UsingFactoryMethod(() => new HttpContextWrapper(HttpContext.Current)).LifeStyle.PerWebRequest);
container.Register(
Component.For<IPrincipal>().
UsingFactoryMethod(() => HttpContext.Current.User).LifeStyle.PerWebRequest);
然后,我尝试在设置 HttpContext.Current.User 属性之前解析 HttpContextBase。在解析 HttpContextBase 期间,windsor 尝试解析为 null 的 IPrincipal,并引发异常。
如果我用我认为应该做的事情来代替决心,即
new HttpContextWrapper(HttpContext.Current)
然后我的代码有效。
有人可以解释为什么 Windsor 会尝试为 HttpContextBase 解析 IPrincipal 吗?我可以阻止它这样做吗?