【发布时间】:2014-08-26 18:03:43
【问题描述】:
我浏览了多个博客等,试图找出如何使用 Web API 2 配置 StructureMap,但没有一个实现对我有用。混淆似乎在于 MVC 使用的不同 IDependency Resolver 和 Web API 使用的 IDependency Resolver。
首先,哪个是正确的 Nuget 包,其次,如何使用纯 Web API 2 项目对其进行配置?
谢谢
这是我到目前为止所拥有的,它似乎正在工作。这是正确的吗?
public class StructureMapControllerActivator : IHttpControllerActivator
{
private readonly IContainer _container;
public StructureMapControllerActivator(IContainer container)
{
if (container == null) throw new ArgumentNullException("container");
_container = container;
}
public IHttpController Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
{
try
{
var scopedContainer = _container.GetNestedContainer();
scopedContainer.Inject(typeof(HttpRequestMessage), request);
request.RegisterForDispose(scopedContainer);
return (IHttpController)scopedContainer.GetInstance(controllerType);
}
catch (Exception e)
{
// TODO : Logging
throw e;
}
}
}
【问题讨论】:
标签: asp.net-web-api structuremap asp.net-web-api2