Вы можете заставить Виндзор использовать фабричный метод при разрешении конкретной службы, указав ее с помощью UsingFactoryMethod
- в вашем случае что-то вроде этого должно сработать:
container.Register(
Component.For<HttpContextBase>()
.UsingFactoryMethod(k => HttpContext.Current != null
? (HttpContextBase)new HttpContextWrapper(HttpContext.Current)
: new FakeHttpContext("~/"))
.Lifestyle.PerWebRequest
);
Для того, чтобы внедритьтекущий запрос, следуйте аналогичному подходу:
container.Register(
Component.For<HttpRequestBase>()
.UsingFactoryMethod(k => k.Resolve<HttpContextBase>().Request)
.Lifestyle.PerWebRequest
);