asp.net-mvc – ASP.NET MVC:HTTPContext和依赖注入
发布时间:2020-12-15 23:33:17 所属栏目:asp.Net 来源:网络整理
导读:目前我有一个ActionFilter,它从HttpContext获取当前的用户名,并将其传递到在服务方法上使用它的操作.例如: Service.DoSomething(userName); 我现在有一个理由不是在动作级别,而是控制器构造器级别.目前我正在使用结构图创建控制器并注入服务.我在看: publi
目前我有一个ActionFilter,它从HttpContext获取当前的用户名,并将其传递到在服务方法上使用它的操作.例如:
Service.DoSomething(userName); 我现在有一个理由不是在动作级别,而是控制器构造器级别.目前我正在使用结构图创建控制器并注入服务.我在看: public interface IUserProvider { string UserName { get; } } public class HttpContextUserProvider : IUserProvider { private HttpContext context; public HttpContextUserProvider(HttpContext context) { this.context = context; } public string UserName { get { return context.User.Identity.Name; } } } 也就是说,我的IoC foo真的很弱,因为这是我使用它的第一个项目. 所以我的问题是…如何告诉结构图在HttpContextUserProvider的构造函数中传递HttpContext?这似乎很奇怪…我不知道如何想到HttpContext. 解决方法
有一个接口抽象HttpContext.Current.仅暴露您需要的方法.例如,GetUserName()将在实现中调用HttpContext.Current.User.Identity.Name.使它尽可能薄.
拿这个抽象并将其注入你的其他提供者类.这将允许您通过嘲笑http上下文抽象来测试提供程序.作为一个副作用,您可以使用该HttpContext抽象来做其他漂亮的事情,除了模拟它.重复使用它,一件事.将通用类型参数添加到行李等 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 是否可能获得一个ASP.NET MVC 3项目工作在
- asp.net – 使用web.config存储设置的替代方法(适用于复杂的
- asp.net中的SqlDependency
- asp.net-mvc – 如何使用ASP.NET MVC将某些HTML元素限制为某
- asp.net-core – 如何将HostBuilder用于WebJob?
- asp.net – ‘没有重载的方法’ToString’采取’1’参数’错
- asp.net – Gridview编辑,点击两次问题
- 泛型单例
- asp.net – Mono有什么不适合的东西?
- asp.net-mvc – ASP.Net Core中的动态路由
推荐文章
站长推荐
- ASP.NET Core 开源GitServer 实现自己的GitHub
- asp.net-mvc – 如何在没有提示的情况下为Google
- asp.net – WCF服务问题 – 不支持协议“http”.
- ASP.NET虚拟路径映射到另一个不允许的应用程序
- asp.net-mvc – 清除Kendo Validator错误消息
- asp.net – 动态地将ASP控件添加到表中
- asp.net – 从中??等信任环境的Web.config读取sy
- asp.net-mvc – Asp.net MVC:上传多个图像文件?
- asp.net – 如何将标签元素与单选按钮相关联
- asp.net-mvc-3 – ASP.Net MVC 3 ModelState.IsV
热点阅读