【发布时间】:2014-04-24 09:10:35
【问题描述】:
我使用 Unity 作为我的 IoC 框架,并且我正在根据处理程序中每个请求的标头中的值创建一个类型:
var container = new UnityContainer();
container.RegisterType<IFoo,Foo>(new InjectionConstructor(valuefromHeader));
GlobalConfiguration.Configuration.DependencyResolver =
new Unity.WebApi.UnityDependencyResolver(container);
问题是处理程序的SendAsync 意味着全局容器被不同的请求覆盖,并且在其构造函数中使用 IFoo 的控制器得到了错误的值。
1) 我可以让 SendAsync 同步吗? 2) 如果不是,我如何为每个请求创建不同的实例并让 IoC 容器安全解析?
我看了以下文章都没有成功:
http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver http://www.strathweb.com/2012/11/asp-net-web-api-and-dependencies-in-request-scope/ http://benfoster.io/blog/per-request-dependencies-in-aspnet-web-api-using-structuremap
提前致谢。
【问题讨论】:
标签: c# asp.net-web-api dependency-injection unity-container