asp.net-mvc – ASP.NET MVC:HTTPContext和依赖注入
发布时间:2020-05-24 01:44:42 所属栏目:asp.Net 来源:互联网
导读:目前我有一个ActionFilter,它从HttpContext获取当前的用户名,并将其传递到在服务方法上使用它的操作.例如: Service.DoSomething(userName); 我现在有一个理由不是在动作级别,而是控制器构造器级别.目前我正在使用结构图创建控制器并注入服务.我在看: public
|
目前我有一个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抽象来做其他漂亮的事情,除了模拟它.重复使用它,一件事.将通用类型参数添加到行李等 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- IIS ASP.NET WebApi在请求同一台服务器时死锁
- asp.net-mvc – 如果ActionResult未更改,则将MVC.NET Outpu
- asp.net-mvc – ASP.NET MVC 4 Visual Studio 2010项目模板
- asp.net mvc partialview @ Ajax.ActionLink不起作用
- 可以使用ASP.NET路由为.ashx(IHttpHander)处理程序创建“干
- asp.net-mvc – MVC 4. IIS 7.5 PUT返回405
- asp.net – 选择下拉列表项目findbytext没有区分大小写vb.n
- asp.net-mvc – 如何在没有其他操作匹配的情况下为我的控制
- 在ASP.NET 3.5中的Response.Clear
- .net – 应用程序池回收时Cache会发生什么?
推荐文章
站长推荐
热点阅读
