C# · Avançado · Inglês · Técnico
source generator
Componente do compilador Roslyn que inspeciona o código durante a compilação e gera novos arquivos C#, substituindo reflection em runtime e boilerplate repetitivo.
Onde usar
Aparece em System.Text.Json, Regex e logging, que geram código em tempo de build e funcionam com Native AOT e trimming. Usá-los troca custo de startup e reflexão por mais código gerado.
Em código
using System.Text.RegularExpressions;
partial class Validador
{
[GeneratedRegex(@"^\d{3}-\d{4}$")]
public static partial Regex Fone();
}Exemplos
We replaced reflection with a source generator.
Trocamos reflection por um source generator.
The source generator emits the code at build time.
O source generator emite o código em tempo de build.
Cuidado
Não confunda com T4 ou geração por script: o gerador roda dentro do compilador e não pode alterar código existente, só adicionar.
Sinônimos
gerador de código