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

sra*_*raj 12 c# asp.net-web-api

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

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

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

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

到目前为止搜索没有产生任何命中,但任何指针都会很棒.感谢您的时间.

Ali*_*tad 9

它由IHttpControllerActivator实现DefaultHttpControllerActivator.

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

GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerActivator), 
        new MyOwnActivatior());
Run Code Online (Sandbox Code Playgroud)

哎呀!

我的意思是IHttpControllerSelector!


它由IHttpControllerSelector实现DefaultHttpControllerSelector.

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

GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerSelector), 
        new MyOwnActivatior());
Run Code Online (Sandbox Code Playgroud)

  • 然后,您可能需要替换以下一个或多个:IHttpControllerSelector(选择控制器),IHttpControllerTypeResolver(向IHttpControllerSelector提供控制器类型列表),IAssembliesResolver(提供程序集列表).见http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection (3认同)