ano*_*Neo 21 .net structuremap asp.net-web-api
我试图使用StructureMap初始化我从ApiController派生的ValuesController,但我得到一个异常,说:
IControllerFactory'... CustomControllerFactory'没有返回名称'api'的控制器.
这是代码..
public class CustomControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
return null;
return (Controller)ConcretizationsManager.GetInstance(controllerType);
}
}
Run Code Online (Sandbox Code Playgroud)
基本上ConcretizationsManager是StructureMap的包装器.这个方法对于Controller类型的控制器总是运行正常,但是对于APIController不行.
有人让我走向正确的方向吗?很感谢
Rad*_*ler 38
对于Web API,我使用的是Custom ServiceActivator(即不同的工厂,然后是MVC):
public class ServiceActivator : IHttpControllerActivator
{
public ServiceActivator(HttpConfiguration configuration) {}
public IHttpController Create(HttpRequestMessage request
, HttpControllerDescriptor controllerDescriptor, Type controllerType)
{
var controller = Factory.CreateInstance(controllerType) as IHttpController;
return controller;
}
}
Run Code Online (Sandbox Code Playgroud)
Factory是我的Sturcturemap API的包装器
在App_Start\WebApiConfig.cs我注册这样:
config.Services.Replace(typeof(IHttpControllerActivator), new ServiceActivator(config));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15230 次 |
| 最近记录: |