asp.net-mvc-3 - ASP.NET MVC 注入(inject) Http/Request/Controller 上下文

标签 asp.net-mvc-3 structuremap httpcontext requestcontext

是否有在 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/

相关文章:

c# - 如何模拟或伪造 HttpApplication/HttpContext 进行测试

C# DotNet 核心中间件包装响应

asp.net-mvc - 在 IIS7 集成模式下获取 NullReferenceException

nhibernate - StructureMap 中的命名单例实例(多个 nHibernate session 工厂)

asp.net-mvc-3 - MVC3 支架存储库中的 Singleton DbContext 派生对象

c# - 我可以有一个名为 "View"的 ActionResult 吗

caSTLe-windsor - 注入(inject) AutoMapper

c# - xUnit 进行 Json 文件读写测试

jquery - 在 jquery ajax 帖子上使用 mvc 3 进行不显眼的验证时遇到问题

javascript - 如何使用内存流在上传之前预览图像