依赖注入(DI)在开发中既是常见的也是必需的技术。它帮助我们优化了代码结构,使得应用更加灵活、易于扩展,同时也降低了各个模块之间的耦合度,更容易进行单元测试,提高了编码效率和质量。不过,手动注入依赖项也可能会成为我们开发过程中的瓶颈。

通常情况下,当我们需要注入大量依赖对象时,我们不得不在构造函数中写大量的参数注入,这不仅会让构造函数变得形式化、冗长,还可能导致人误(手误)或各种错误。为了让依赖注入的流程更为智能和高效,我将自己的经验结合技术要求,开发了一个Visual Studio的插件,简单易用、解决了许多构造函数参数申明的问题。

该插件能够快速将构造函数参数,赋给类的局部私有变量,提升了编写依赖注入(DI)的效率,简化了代码的编写过程。开发人员只需要将光标放置于构造函数内部,按下快捷键即可完成参数赋值和定义私有变量。

示例:原始代码

    public class TestClass
    {
        public TestClass(ILogger<TestClass> logger , IServiceProvider serviceProvider)
        {

        }
    }

把光标定在class内部,按下 ALT + 0 快捷键,自动变成下面这样:

    public class TestClass
    {
        ILogger<TestClass> _logger;
        IServiceProvider _serviceProvider;
        public TestClass(ILogger<TestClass> logger, IServiceProvider serviceProvider)
        {
            this._logger = logger;
            this._serviceProvider = serviceProvider;
        }
    }

如果是按下 ALT + 9 快捷键,私有变量会采用readonly修饰:

    public class TestClass
    {
        readonly ILogger<TestClass> _logger;
        readonly IServiceProvider _serviceProvider;
        public TestClass(ILogger<TestClass> logger, IServiceProvider serviceProvider)
        {
            this._logger = logger;
            this._serviceProvider = serviceProvider;
        }
    }

安装方法:

在vs2022的【扩展】-》【管理扩展】,直接搜索安装 DependencyInjectionVsix2022

源码:

https://e.coding.net/IWay2018/public/DependencyInjectionVsix2022.git

06-26 17:23