Web API中DefaultControllerFactory的等价物是什么?

时间:2012-08-09 14:55:45

标签: c# asp.net-web-api

我们正在尝试用新的ASP.NET Web API替换以前的DefaultControllerFactory,以更好地处理REST / XML调用。搜索Web始终指向实现System.Web.Http.Dependencies.IDependencyResolver,然后处理GetService()以及界面所需的其他一些方法。

然而,它似乎缓存了ApiController实例和任何新的控制器,它似乎没有解决。由于性能问题,很难在启动期间提供所有可能的ApiController实例。

DefaultControllerFactory允许提供控制器实例并缓存“命中”条目,但是当一个instane无法延迟加载时会抛出错误。

是否还需要实施其他过载/控制器工厂方法?

到目前为止搜索没有产生任何点击,但任何指针都会很棒。谢谢你的时间。

1 个答案:

答案 0 :(得分:9)

IHttpControllerActivator实施DefaultHttpControllerActivator

您可以使用以下方式替换它:

GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerActivator), 
        new MyOwnActivatior());

糟糕!

我的意思是IHttpControllerSelector


IHttpControllerSelector实施DefaultHttpControllerSelector

您可以使用以下方式替换它:

GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerSelector), 
        new MyOwnActivatior());