HttpContextBase对IPrincipal的依赖?

时间:2012-10-25 11:11:29

标签: asp.net-mvc castle-windsor

我有以下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吗?我能阻止它吗?

1 个答案:

答案 0 :(得分:1)

Windsor也尝试注入属性依赖项。你必须明确地说,你不想。

Component.For<HttpContextBase>().Properties(PropertyFilter.IgnoreAll))...