我有以下windsor设置:
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吗?我能阻止它吗?
答案 0 :(得分:1)
Windsor也尝试注入属性依赖项。你必须明确地说,你不想。
Component.For<HttpContextBase>().Properties(PropertyFilter.IgnoreAll))...