Files
Modbus.Net/Samples/MachineJob.CodeGenerator/DatabaseWriteEntityCodeGenerator.cs
2026-04-04 17:25:15 +08:00

48 lines
1.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Microsoft.CodeAnalysis;
namespace Modbus.Net.CodeGenerator
{
/// <summary>
/// 数据库写入实体代码生成器
/// 使用 Roslyn 源生成器自动生成 DatabaseWriteEntity 类的属性
/// </summary>
[Generator]
public class DatabaseWriteEntityCodeGenerator : ISourceGenerator
{
/// <summary>
/// 执行代码生成
/// 生成 10 个 Value1 到 Value10 的双精度属性
/// </summary>
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);
}
/// <summary>
/// 初始化生成器
/// </summary>
public void Initialize(GeneratorInitializationContext context)
{
}
}
}