0

我有以下温莎设置:

        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 吗?我可以阻止它这样做吗?

4

1 回答 1

1

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

Component.For<HttpContextBase>().Properties(PropertyFilter.IgnoreAll))...
于 2012-10-26T07:04:30.203 回答