.NET Core 依賴注入改造(1)- 命名服務(wù)
.NET Core 依賴注入改造(2)- 委托轉(zhuǎn)換
.NET Core 依賴注入改造(3)- ILogger
.NET Core 依賴注入改造(4)- ActivatorUtilities
.NET Core 依賴注入改造(5)- Context
.NET Core 依賴注入改造(附1)- Autowired
一帅容、
今天有小伙伴問我舌缤,之前的一些改造怎么用在實(shí)際項(xiàng)目中晌坤。
好吧行贪。捕透。蹋嵌。
那就來一個讓Controller
支持Autowired的
二暇屋、
先在nuget中安裝blqw.DI.ExtensionMethods
包
三
自定義 IControllerActivator
實(shí)例加匈;
為了方便炫隶,直接繼承系統(tǒng)的DefaultControllerActivator
class MyControllerActivator : DefaultControllerActivator
{
public MyControllerActivator(ITypeActivatorCache typeActivatorCache)
: base(typeActivatorCache) { }
public override object Create(ControllerContext controllerContext)
{
var controller = base.Create(controllerContext);
controllerContext.HttpContext.RequestServices.Autowired(controller);
return controller;
}
}
四淋叶、
在ConfigureServices
中注冊MyControllerActivator
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSingleton(typeof(IControllerActivator), typeof(MyControllerActivator));
}
五、
測試一下
嗯有了伪阶。