48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
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)
|
||
{
|
||
}
|
||
}
|
||
}
|