.NET Core 依赖注入改造(1)- 命名服务
.NET Core 依赖注入改造(2)- 委托转换
.NET Core 依赖注入改造(3)- ILogger
.NET Core 依赖注入改造(4)- ActivatorUtilities
.NET Core 依赖注入改造(5)- Context
.NET Core 依赖注入改造(附1)- Autowrite
一、
今天有小伙伴问我,之前的一些改造怎么用在实际项目中。
好吧。。。
那就来一个让Controller
支持Autowrite的
二、
先在nuget中安装blqw.DI.ExtensionMethods
包
三
自定义 IControllerActivator
实例;
为了方便,直接继承系统的DefaultControllerActivator
class MyControllerActivator : DefaultControllerActivator
{
public MyControllerActivator(ITypeActivatorCache typeActivatorCache)
: base(typeActivatorCache) { }
public override object Create(ControllerContext controllerContext)
{
var controller = base.Create(controllerContext);
controllerContext.HttpContext.RequestServices.Autowrite(controller);
return controller;
}
}
四、
在ConfigureServices
中注册MyControllerActivator
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSingleton(typeof(IControllerActivator), typeof(MyControllerActivator));
}
五、
测试一下
嗯有了。
网友评论