技术栈
roslyn
万雅虎
15 天前
roslyn
·
csharp
·
sg
使用Roslyn的源生成器生成DTO
源生成器的好处很多, 通过在编译时生成代码,可以减少运行时的反射和动态代码生成,从而提高应用程序的性能, 有时候需要对程序AOT以及裁剪编译的dll也是需要用SG来处理的。
万雅虎
2 个月前
netcore
·
roslyn
·
csharp
·
sg
使用 `Roslyn` 分析器和修复器 对异步方法规范化返回Async结尾
之前写过一篇使用修复器帮助添加头部注释文本的功能,今天使用Roslyn的代码修复器对异步返回方法规范化的功能
万雅虎
3 个月前
roslyn
·
csharp
·
sg
使用.NET源生成器(SG)生成项目的版本号信息
之前写过一篇 源生成器生成自动注入的代码 主要是通过SyntaxProvider查找标注特性实现其实除了SyntaxProvider之外还有几个很重要的Provider,比如:MetadataReferencesProvider,AdditionalTextsProvider,AnalyzerConfigOptionsProvider等.
万雅虎
7 个月前
roslyn
·
csharp
·
sg
使用.NET源生成器(SG)实现一个自动注入的生成器
DI依赖注入对我们后端程序员来说肯定是基础中的基础了,我们经常会使用下面的代码注入相关的service
饭勺oO
7 个月前
c#
·
asp.net core
·
.net core
·
roslyn
·
source genertor
学习Source Generators之了解Source Generators的应用场景
前面的文章我们都初步学习了Source Generators的使用方式以及做了一些简单的代码生成工具。 但是Source Generators除了做自动代码生成之外,还能有别的应用场景,本文来了解一下Source Generators的应用场景。
饭勺oO
7 个月前
c#
·
asp.net core
·
.net core
·
nuget
·
roslyn
·
source genertor
学习Source Generators之打包成Nuget使用
前面我们简单的实现了一个从swagger生成实体类的Generator,在实际使用中,通过nuget包引用使用会更方便,那么本篇文章将介绍如何将Generator打包成Nuget来使用。
饭勺oO
8 个月前
c#
·
.net core
·
roslyn
·
source genertor
学习Source Generators之输出生成的文件
上一篇文章学习了通过获取和解析swagger.json的内容,来生成API的请求响应类。 但是其中无法移动与编辑。 那么本文将介绍如何输出生成的文件。
饭勺oO
8 个月前
c#
·
.net core
·
roslyn
·
source genertor
学习Source Generators之从swagger中生成类
前面学习了一些Source Generators的基础只是,接下来就来实践一下,用这个来生成我们所需要的代码。 本文将通过读取swagger.json的内容,解析并生成对应的请求响应类的代码。
饭勺oO
8 个月前
c#
·
.net core
·
roslyn
·
source genertor
学习Source Generators之IncrementalValueProvider
前面我们使用了IIncrementalGenerator来生成代码,接下来我们来详细了解下IIncrementalGenerator的核心部分IncrementalValueProvider。
饭勺oO
8 个月前
c#
·
asp.net core
·
.net core
·
roslyn
·
source genertor
学习Source Generators之HelloWorld
源生成器是 C# 开发人员可以编写的一种新组件,允许执行两个主要操作:结合使用这两项操作能充分发挥源生成器的强大功能。 可以使用编译器在编译时构建的丰富元数据检查用户代码。 然后,生成器将 C# 代码发送回基于已分析数据的同一编译。 如果你熟悉 Roslyn 分析器,可以将源生成器视为可发出 C# 源代码的分析器。 源生成器作为编译阶段运行,如下所示: 源生成器是由编译器与任何分析器一起加载的 .NET Standard 2.0 程序集。 它在可以加载和运行 .NET Standard 组件的环境中使用。
路过秋天
8 个月前
roslyn
·
emit
·
net
·
codedom
.NET Emit 入门教程:第二部分:构建动态程序集(追加构建静态程序集教程)
在本部分中,我们将深入探讨如何使用C# Emit 来创建动态程序集。动态程序集是在运行时生成的,为我们提供了一种灵活、动态地构建和加载程序集的能力。
AzulX
10 个月前
.net
·
compile
·
roslyn
·
il
·
natasha
轻量化动态编译库 Natasha v8.0 正式发布!
Hello 各位小伙伴,我于 2024年1月10日 发布了 Natasha 一个全新的里程碑版本 v8.0,对于老用户而言,此次发布版本号跨度较大,是因为我决定使用新的版本号计划,主版本号将随 Runtime 版本号的增加而增加。
白菜园
10 个月前
roslyn
用Roslyn玩转代码之一: 解析与执行字符串表达式
最近框架中的可视化界面设计需要使用到表达式引擎(解析代码字符串并动态执行),之前旧框架的实现是将表达式字符串解析为语法树后解释执行该表达式,本文介绍如何使用Roslyn解析表达式字符串,并直接转换为Linq的表达式后编译执行。
小鱼游戏开发
1 年前
unity
·
roslyn
·
using
·
语法树分析
Roslyn 去除多余using
当你添加新代码的时候VS会自动帮你添加对应的using,但是它只会帮你加不会帮你减 由于运行时并不能使用UnityEditor命名空间里面的东西。你就算加了也会在打包的时候给你报错,除非使用宏包裹起来 因为我们打包都是在打包机上操作的。一般情况下自己本地是不会打包也就不会知道在代码里面有多余using 经常出现打包到一半因为有多余的using导致的打包失败。然后再通知程序修改上传重新打包