使用Structuremap如何将MVC控制器的属性注入Controller使用的服务的构造函数中

时间:2011-02-23 15:29:27

标签: asp.net structuremap

我是使用StructureMap作为asp.MVC的IOC容器的新手。我的一个控制器在构造函数中使用了一个IStreamService接口。

这很容易链接到StreamService的具体类实现,如此

For<IStreamService>().HttpContextScoped().Use<StreamService>();

我面临的问题是具体类构造器采用IPrincipal参数,需要注入该参数。我想将实例化Controller的User属性传递给Concrete Service。有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

没问题,只需将此行添加到您的配置中:

For<IPrincipal>().Use(() => HttpContext.Current.User);

使用lambda会在每次请求依赖时对其进行评估(而不是在配置时成为单个实例。