跳到主要内容
版本:0.16

C# 序列化指南

Apache Fory™ C# 是面向 .NET 的高性能跨语言序列化运行时。它提供对象图序列化、Schema 演进、通用对象载荷支持,以及适用于并发负载的线程安全封装。

为什么选择 Fory C#?

  • 面向 .NET 8+ 的高性能二进制序列化
  • 可与 Java、Python、C++、Go、Rust 和 JavaScript 的 Fory 实现互操作
  • [ForyObject] 类型提供基于 Source Generator 的序列化器
  • 可选引用跟踪,支持共享引用和循环对象图
  • 提供用于 Schema 演进的兼容模式
  • 为多线程服务提供线程安全运行时 ThreadSafeFory

快速开始

环境要求

  • .NET SDK 8.0+
  • C# 语言版本 12+

从 NuGet 安装

直接引用 Apache.Fory 这个包即可。它同时包含运行时以及 [ForyObject] 类型所需的 Source Generator。

<ItemGroup>
<PackageReference Include="Apache.Fory" Version="0.1.0" />
</ItemGroup>

基础示例

using Apache.Fory;

[ForyObject]
public sealed class User
{
public long Id { get; set; }
public string Name { get; set; } = string.Empty;
public string? Email { get; set; }
}

Fory fory = Fory.Builder().Build();
fory.Register<User>(1);

User user = new()
{
Id = 1,
Name = "Alice",
Email = "alice@example.com",
};

byte[] payload = fory.Serialize(user);
User decoded = fory.Deserialize<User>(payload);

核心 API

  • Serialize<T>(in T value) / Deserialize<T>(...),用于强类型序列化
  • Serialize<object?>(...) / Deserialize<object?>(...),用于动态载荷
  • Register<T>(uint typeId) 以及基于命名空间/名称的注册 API
  • Register<T, TSerializer>(...),用于自定义序列化器

文档导航

主题说明
配置Builder 选项与运行时模式
基础序列化强类型与动态序列化 API
类型注册注册用户类型与自定义序列化器
自定义序列化器实现 Serializer<T>
字段配置[Field] 特性与整数编码选项
引用共享引用与循环引用处理
Schema 演化兼容模式行为
跨语言互操作使用指南
支持的类型内置类型与生成类型支持
线程安全ForyThreadSafeFory 的使用方式
故障排查常见错误与调试步骤

相关资源