跳到主要内容
版本:0.16

字段配置

本页介绍 C# 生成序列化器中的字段级配置。

[ForyObject][Field]

使用 [ForyObject] 启用 Source Generator 生成的序列化器;使用 [Field] 为特定字段覆盖整数编码方式。

using Apache.Fory;

[ForyObject]
public sealed class Metrics
{
// 定长 32 位编码
[Field(Encoding = FieldEncoding.Fixed)]
public uint Count { get; set; }

// Tagged 64 位编码
[Field(Encoding = FieldEncoding.Tagged)]
public ulong TraceId { get; set; }

// 默认(varint)编码
public long LatencyMicros { get; set; }
}

可用编码

编码含义
FieldEncoding.Varint变长整数编码(默认)
FieldEncoding.Fixed定长整数编码
FieldEncoding.TaggedTagged 整数编码(仅支持 long / ulong

支持覆盖编码的字段类型

目前 [Field(Encoding = ...)] 可用于:

  • int
  • uint
  • long
  • ulong

可空值类型变体(例如 long?)同样会由生成序列化器处理。

可空性与引用跟踪

  • 字段是否可空由 C# 类型可空性决定,例如 string?、可空值类型等。
  • 引用跟踪由运行时的 ForyBuilder.TrackRef(...) 控制。

相关主题