.NET

.NET Core 依赖注入改造(附1)- Autowrite

2018-09-16  本文已影响35人  冰麟轻武

.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

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));
}

五、

测试一下


嗯有了。

上一篇下一篇

猜你喜欢

热点阅读