最近学习了源生成器,遂仿照CommunityToolkit/Windows中的DependencyPropertyGenerator写了个生成器,可自动生成Avalonia中的StyledProperty和DirectProperty
NuGet:https://www.nuget.org/packages/PropertyGenerator.Avalonia
Github:https://github.com/zxbmmmmmmmmm/PropertyGenerator
最近学习了源生成器,遂仿照CommunityToolkit/Windows中的DependencyPropertyGenerator写了个生成器,可自动生成Avalonia中的StyledProperty和DirectProperty
NuGet:https://www.nuget.org/packages/PropertyGenerator.Avalonia
Github:https://github.com/zxbmmmmmmmmm/PropertyGenerator
在上文构建源生成器的过程中,我们使用字符串直接插入代码。这样做固然方便快捷,但字符串需要手动格式化,且无法检测拼写错误,这对需要生成复杂结构的源生成器项目很不友好。
本文将介绍生成代码的另一种方式:使用Roslyn API构建语法树。
C#9 引入了一个强大的机制:源生成器(Source Generator)。通过创建源生成器,我们可以简化大量重复编写的代码,或是减少反射来获得更强的性能以及AOT支持
本文将介绍如何从零开始创建一个最简单的源生成器