目前我有一个ActionFilter,它从HttpContext中获取当前用户的名称并将其传递到使用服务方法的操作中。例如:
Service.DoSomething(userName);
我现在有一个理由在控制器构造函数级别上进行操作,而不是在操作级别上进行操作。目前我正在使用StructureMap创建控制器并注入服务。我正在查看类似于以下内容:
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并不熟悉,因为这是我第一次在项目中使用它。
我的问题是... 如何告诉Structure Map在HttpContextUserProvider的构造函数中传递HttpContext?这似乎很奇怪...我不确定如何考虑HttpContext。