【发布时间】:2011-02-24 01:11:39
【问题描述】:
我刚开始使用 StructureMap 作为 asp.MVC 的 IOC 容器。我的一个控制器在构造函数中采用 IStreamService 接口。
这很容易像这样链接到 StreamService 的具体类实现
For<IStreamService>().HttpContextScoped().Use<StreamService>();
我面临的问题是具体的类构造函数需要一个 IPrincipal 参数,该参数需要注入。我想将实例化控制器的用户属性传递给具体服务。有人可以指出我正确的方向吗?
【问题讨论】:
-
你真的需要从控制器中拉出 IPrincipal 吗?正如 Robin 所建议的,如果你只是将它从 HttpContext 中拉出来,那就容易多了。
-
感谢 cmets。忘记 IPrincipal 恰好是可从 HttpContect 访问的属性这一事实。如果它是控制器需要的另一个属性,我该怎么做。即不能从 HttpContext 访问。有没有办法做到这一点?
-
这怎么可能?是说 MyController 依赖于 StreamService,而 StreamService 又依赖于 MyController?
标签: asp.net structuremap