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

发布一个Visual Studio 2022 插件,可以自动完成构造函数依赖注入代码的更多相关文章

  1. 微软发布了Visual Studio 2022 RC版,并将在11月8日发布正式版

    微软今天发布了Visual Studio 2022 最接近正式发布的RC版本,同时宣布在11月8日发布正式版,届时将在线上发布虚拟的发布活动,具体参见:https://devblogs.microso ...

  2. 微软发布了Visual Studio 2022 Preview 1 以及.NET 6 Preview 5

    Microsoft 今天宣布了Visual Studio 2022 的第一个预览版,并且同时也发布了.NET 6 Preview 5. https://devblogs.microsoft.com/v ...

  3. Code Runner,率先支持刚发布的 Visual Studio 2022!

    Visual Studio 被不少网友成为"宇宙第一IDE".但是,我写✍ PHP.Java 和 C#,也都是用的 VS Code. 我所在的组,是 Visual Studio C ...

  4. Visual Studio 常用插件

    一.IndentGuide 缩进线插件:每个缩进块首尾添加虚线,使代码看着整洁. 其他插件:继续推荐几款VisualStudio的插件 二.CodeRush code rush 是微软推出的一款VS2 ...

  5. 它来了!!!有史以来第一个64位Visual Studio(2022)预览版将在今夏发布!

    美国时间2021年4月19日,微软产品研发部一位负责人Amanda Silver在其博客上发布一则<Visual Studio 2022>的消息,表示将在今年(2021年)夏天发布Visu ...

  6. .NET 6.0.6 和 .NET Core 3.1.26、Visual Studio 2022 17.2 和 17.3 Preview 2 和 .NET 7.0 Preview 5 同时发布

    Microsoft 昨天发布了适用于 .NET 6.0.6 和 .NET Core 3.1.26.NuGet.Visual Studio 2019 和 Visual Studio 2022 17.2 ...

  7. 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生

    [转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...

  8. Visual Studio 2022 Community 不完全攻略

    0. 前言 建议结合视频阅读哦 Visual Studio 2022 Community 不完全攻略 有问题或者意见欢迎评论 ! 1. 下载&安装 Visual Studio Communit ...

  9. 免费的Visual Studio的插件

    在做了深入(的)研究之后(通过在google网站搜索),,我编译了15个免费Visual Studio 2005插件表..其中一些插件将提高您(的)代码(的)质量,,另外一些能使您编译(的)更快,,但 ...

  10. 令人惊叹的Visual Studio Code插件

    vscode是一款开源且优秀的编辑器,接下来让我吐血推荐一下我工作使用过的令人惊叹的Visual Studio Code插件. 代码编辑插件 vscode-color-highlight ------ ...

随机推荐

  1. [Git]解决:error: The following untracked working tree files would be removed by checkout:

    1 文由 不小心在本地对master分支做了修改,并commit了,但是没有push成功(因为处于防止代码提交风险,产品部对普通开发者没有项目master的push权限) 后来又经过了一顿骚操作(我已 ...

  2. day05 运算符和流程控制

    Day05 逻辑运算符 成员运算符 身份运算符 流程控制(重点) if判断 while循环 标志位的使用 逻辑运算符 and  与 #可以用and链接多个条件,会按照从左到右的顺序依次判断,有一个为F ...

  3. SQL Case条件判断语句

    问题描述:在表中取到一些值做出判断,配合监控监测一些表中的数据.使用select case when if 来做条件查询判断 CASE 表达式遍历条件并在满足第一个条件时返回一个值(类似于 if-th ...

  4. 随手记:redis 开发注意事项

    Redis开发建议 1.冷热数据分离,不要将所有数据全部都放到Redis中 虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵.建议根据业务只将高频热数据存储到Redis中 ...

  5. TS(一)环境搭建与基本类型

    1 TypeScript 环境搭建 1 准备NodeJs环境 2 npm全局安装typeScript npm i -g typescript 3 编写一个ts文件 4 使用tsc命令编译ts文件为js ...

  6. 记一次 MySQL 主从同步异常的排查记录,百转千回

    你好,我是悟空. 这是悟空的第 183 篇原创文章 官网:www.passjava.cn 本文主要内容如下: 一.现象 最近项目的测试环境遇到一个主备同步的问题: 备库的同步线程停止了,无法同步主库的 ...

  7. R读入数据

    两种方式: edit()自动生成一个红色的表格,列名会自动的放上去,不够的会显示var5,var6,var7 mydata <- data.frame( age = numeric(0), ge ...

  8. flex:1的情况下,overflow:auto没有生效的问题

    flex:1的元素的父元素必须保证高度或者宽度有具体的数值:如果父元素的高度或者宽度也是flex:1自适应的,最好在父元素上也设置overflow:auto,这样子元素的overflow:auto生效 ...

  9. 深度学习实现案例(Tensorflow、PaddlePaddle)

    深度学习实验案例 文章目录 深度学习实验案例 一.基础理论 实验一:自定义感知机 实验二:验证图像卷积运算效果 二.Tensorflow 实验一:查看Tensorflow版本 实验二:Hellowor ...

  10. Xcode编译流程

      Xcode的构建过程本质上是执行一系列构建任务.如:代码检测,编译代码,链接目标文件,拷贝资源(图片, plist, nib)文件,代码签名等.大部分任务是执行命令行工具,如(clang编译. l ...