【问题标题】:How do I replace the default IControllerFactory with my own implementation in asp.net core?如何在 asp.net 核心中用我自己的实现替换默认的 IControllerFactory?
【发布时间】:2017-02-15 22:35:30
【问题描述】:
我想在 ASP.NET 核心应用程序中创建自己的 IControllerFactory 和 IActionInvoker 实现。如何用我的自定义类替换默认实现?
我找到了旧版本 MVC ControllerBuilder.Current.SetControllerFactory 的解决方案,但在 ASP.NET 核心中找不到解决方案。
我相信我应该在 Startup => ConfigureServices 的某个地方配置它
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
controller
asp.net-core
【解决方案1】:
我通过调用找到了解决方案
services.AddSingleton<Microsoft.AspNetCore.Mvc.Controllers.IControllerFactory, MyOwnImplementationClassOfControllerFactory>();
就在致电services.AddMvc(); 之前
其中MyOwnImplementationClassOfControllerFactory 是从DefaultControllerFactory 派生的IControllerFactory 的自定义实现。
我用的是单例,因为我发现default implementation使用了下面的调用services.TryAddSingleton<IControllerFactory, DefaultControllerFactory>();