是否有在 ASP.NET MVC 应用程序中注入(inject) Http/Request/Controller 上下文的推荐方法?
以前我只像这样使用 HttpContext 完成此操作(我使用的是 StructureMap):
For<HttpContextBase>().Use(ctx => new HttpContextWrapper(HttpContext.Current));
但是,在某些情况下,我还需要访问请求上下文。与其手动构建它,不如注入(inject)它。一个很好的例子是注入(inject)一个 UrlHelper(需要 RequestContext 和 RouteCollection)。
谢谢
本
最佳答案
您可能需要考虑是否真的要直接依赖这些上下文对象(它们往往会使依赖于它们的事物难以测试)。也就是说,您走在正确的轨道上:
For<RequestContext>().Use(ctx => HttpContext.Current.Request.RequestContext);
For<RouteCollection>().Use(ctx => RouteTable.Routes);
关于asp.net-mvc-3 - ASP.NET MVC 注入(inject) Http/Request/Controller 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5443453/