asp.net-web-api – 如何配置Web API 2和结构图
发布时间:2020-05-30 06:30:47 所属栏目:asp.Net 来源:互联网
导读:我浏览了多个博客等,试图找出如何使用Web API 2配置StructureMap,并且没有一个实现对我有用.混乱似乎在于MVC使用的不同的IDependency Resolver,以及Web API使用的. 首先,哪个是正确的Nuget包,其次,你如何使用纯Web API 2项目进行配置? 谢谢 这是我到目前为止
|
我浏览了多个博客等,试图找出如何使用Web API 2配置StructureMap,并且没有一个实现对我有用.混乱似乎在于MVC使用的不同的IDependency Resolver,以及Web API使用的. 首先,哪个是正确的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;
}
}
}
解决方法有几个链接,我试图解释我们如何使用(轻松)StructureMap和Web API:> WebAPI + APIController with structureMap 我们必须实现IHttpControllerActivator,它可以从已经配置的StructureMap ObjectFactory中获益: public class ServiceActivator : IHttpControllerActivator
{
public ServiceActivator(HttpConfiguration configuration) {}
public IHttpController Create(HttpRequestMessage request,Type controllerType)
{
var controller = ObjectFactory.GetInstance(controllerType) as IHttpController;
return controller;
}
}
然后,我们必须注册我们的实现(global.asax): protected void Application_Start()
{
...
HttpConfiguration config = GlobalConfiguration.Configuration;
config.Services
.Replace(typeof(IHttpControllerActivator),new ServiceActivator(config));
... (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 有没有办法在Web Api控制器中处理表单发布数据?
- asp.net-mvc – MVC3 EF4 POCO存储库/ UnitOfWork连接错误
- ASP.NET MVC,Ninject,每个请求多个构造函数的单个实例
- asp.net-mvc – 为什么在Asp.net MVC 2中的子操作中不允许重
- 阻止拦截ASP.NET Web API响应的FormsAuthenticationModule
- asp.net-mvc – ASP.NET MVC和ViewState
- asp.net web-api – ASP.net Web API RESTful Web服务基本身
- asp.net-mvc – 将解决方案分成不同的项目
- 从代码隐藏调用ASP.NET Web API
- asp.net-mvc-4 – 重定向到动作,参数在mvc中始终为空
