Net Core教程

.Net6(5)SourceGenerator

本文主要是介绍.Net6(5)SourceGenerator,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

序言

1 SourceGenerator介绍

SourceGenerator于2020年4月29日在微软的.net blog首次介绍,大概说的是开发者编可以写分析器,在项目代码编译时,分析器分析项目既有的静态代码,允许添加源代码到GeneratorExecutionContext中,一同与既有的代码参与编译。

2 SourceGenerator未出生时

在还没有SourceGenerator的时候,开发者要实现AOP框架时,往往使用以下技术:

  • Emit技术,运行时生成代理类型,难点比较低且不用考虑语言的语法,但不适用于需要完全AOT编译的平台。
  • msbulid+代码分析+代码生成,拦截build的某个阶段运行task,task分析既有代码的语法,然后生成代理代码到编译器中。
  • msbuild+Mono.Cecil, 拦截build的某个阶段运行task,task通过Cecil静态修改编译输出的程序集,补充代理IL到程序集中,然后程序集可能会继续参与下一步的AOT编译过程。

在编译器期间 把特定的字符串代码编译和原有的代码进行集成,是反射,IL编织,MSBuild任务处理的另一种形似的加强版本。

资料

这篇关于.Net6(5)SourceGenerator的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!