赖注入(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
标签:插件,serviceProvider,TestClass,Visual,ILogger,logger,public,构造函数 From: https://www.cnblogs.com/IWings/p/17504667.html