我是使用StructureMap作为asp.MVC的IOC容器的新手。我的一个控制器在构造函数中使用了一个IStreamService接口。
这很容易链接到StreamService的具体类实现,如此
For<IStreamService>().HttpContextScoped().Use<StreamService>();
我面临的问题是具体类构造器采用IPrincipal参数,需要注入该参数。我想将实例化Controller的User属性传递给Concrete Service。有人可以指出我正确的方向吗?
答案 0 :(得分:3)
没问题,只需将此行添加到您的配置中:
For<IPrincipal>().Use(() => HttpContext.Current.User);
使用lambda会在每次请求依赖时对其进行评估(而不是在配置时成为单个实例。