如何在asp.net核心中用我自己的实现替换默认的IControllerFactory?

时间:2017-02-15 22:35:30

标签: c# asp.net asp.net-mvc controller asp.net-core

我想在ASP.NET核心应用程序中创建自己的IControllerFactory和IActionInvoker实现。如何用我的自定义类替换默认实现?

我找到了旧版MVC ControllerBuilder.Current.SetControllerFactory的解决方案,但在ASP.NET核心中无法找到解决方法。

我相信我应该在Startup =>中配置它。 ConfigureServices

1 个答案:

答案 0 :(得分:6)

我通过调用

找到了解决方案
services.AddSingleton<Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory, MyOwnImplementationClassOfControllerFactory>();
在致电services.AddMvc();之前

其中MyOwnImplementationClassOfControllerFactory是从DefaultControllerFactory派生的IControllerFactory的自定义实现。

我使用了singleton,因为我发现default implementation使用了以下调用services.TryAddSingleton<IControllerFactory, DefaultControllerFactory>();