Код: Выделить всё
[Map(Type c, Type d)]
public record MyRecord{}
Как?
У меня есть такой генератор кода Roslyn:
Код: Выделить всё
public void Initialize(IncrementalGeneratorInitializationContext context)
{
var mapSyntaxProvider = context.SyntaxProvider
.CreateSyntaxProvider(
predicate: (node, _) => node is RecordDeclarationSyntax { AttributeLists.Count: >= 1 },
transform: (ctx, _) =>
{
return (RecordDeclarationSyntax)ctx.Node;
})
.Where(static rds => rds is not null);
context.RegisterSourceOutput(
mapSyntaxProvider,
static (spc, syntax) => ExecuteMapRecord(spc, syntax));
}
private static void ExecuteMapRecord(SourceProductionContext spc, RecordDeclarationSyntax syntax)
{
...
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... -generator