using Microsoft.CodeAnalysis; namespace Modbus.Net.CodeGenerator { /// /// 数据库写入实体代码生成器 /// 使用 Roslyn 源生成器自动生成 DatabaseWriteEntity 类的属性 /// [Generator] public class DatabaseWriteEntityCodeGenerator : ISourceGenerator { /// /// 执行代码生成 /// 生成 10 个 Value1 到 Value10 的双精度属性 /// public void Execute(GeneratorExecutionContext context) { var content = ""; // 生成 10 个属性:Value1 到 Value10 for (int i = 1; i <= 10; i++) { content += $@"public double? Value{i} {{ get; set; }} "; } // 生成完整的类代码 var source = $@" namespace MachineJob {{ public partial class DatabaseWriteEntity {{ {content} }} }}"; // 添加生成的源代码到编译 context.AddSource("DatabaseWriteContent.g.cs", source); } /// /// 初始化生成器 /// public void Initialize(GeneratorInitializationContext context) { } } }