8

发布一个Visual Studio 2022 插件,可以自动完成构造函数依赖注入代码

 1 year ago
source link: https://www.cnblogs.com/IWings/p/17504667.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

发布一个Visual Studio 2022 插件,可以自动完成构造函数依赖注入代码

依赖注入(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


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK