Skip to content

GameCore.Serialization ​

AbilityJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class AbilityJsonConverter : JsonConverter<Ability>

Ability 的自定义 JSON 转换器,将 Ability 对象序列化为 ProtoAbility 结构体

构造函数 ​

AbilityJsonConverter 双端 ​

csharp
public AbilityJsonConverter()

方法 ​

Read 双端 ​

csharp
public override Ability? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, Ability value, JsonSerializerOptions options)

DateTimeJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class DateTimeJsonConverter : JsonConverter<DateTime>

DateTime 的自定义 JSON 转换器

构造函数 ​

DateTimeJsonConverter 双端 ​

csharp
public DateTimeJsonConverter()

方法 ​

Read 双端 ​

csharp
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)

EntityJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class EntityJsonConverter : JsonConverter<Entity>

Entity 的自定义 JSON 转换器,将 Entity/Unit 对象序列化为 ProtoEntity 结构体

构造函数 ​

EntityJsonConverter 双端 ​

csharp
public EntityJsonConverter()

方法 ​

Read 双端 ​

csharp
public override Entity? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, Entity value, JsonSerializerOptions options)

ExtendableEnumJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class ExtendableEnumJsonConverter<T> : JsonConverter<T> where T : IExtendedEnum

泛型可扩展枚举JSON转换器 处理具体类型的可扩展枚举序列化和反序列化

构造函数 ​

ExtendableEnumJsonConverter 双端 ​

csharp
public ExtendableEnumJsonConverter()

方法 ​

Read 双端 ​

csharp
public override T Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options)

ExtendableEnumJsonConverterFactory 双端 ​

命名空间 GameCore.Serialization

csharp
public class ExtendableEnumJsonConverterFactory : JsonConverterFactory

可扩展枚举JSON转换器工厂 为所有实现IExtendedEnum的类型提供自动序列化支持

备注

此转换器将可扩展枚举序列化为 {"enumHash": 12345} 格式, 确保跨服务器、跨客户端通信时能够正确还原枚举实例。

构造函数 ​

ExtendableEnumJsonConverterFactory 双端 ​

csharp
public ExtendableEnumJsonConverterFactory()

方法 ​

CanConvert 双端 ​

csharp
public override bool CanConvert(Type typeToConvert)

CreateConverter 双端 ​

csharp
public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options)

GameJsonSerializerOptions 双端 ​

命名空间 GameCore.Serialization

csharp
public static class GameJsonSerializerOptions

游戏框架统一的JSON序列化选项

备注

此类提供了框架级别的标准JSON序列化配置,包含了所有必要的自定义转换器。 所有需要进行JSON序列化的地方(如ServerChannelMessage、TypedMessage、云存档等) 都应该使用此配置以确保一致性。 重要特性: 可扩展枚举支持:自动处理 IExtendedEnum 类型 游戏对象支持:自动处理 Entity、Player、Scene、Ability、Item 等核心游戏对象 驼峰命名:属性名使用 camelCase 格式 忽略null值:序列化时自动忽略 null 属性 标准枚举支持:普通枚举序列化为字符串

字段 ​

Default 双端 ​

csharp
public static readonly JsonSerializerOptions Default

默认的JSON序列化选项,包含所有框架级别的转换器

Indented 双端 ​

csharp
public static readonly JsonSerializerOptions Indented

格式化输出的JSON序列化选项(用于调试和日志)

IActorScopeJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class IActorScopeJsonConverter : JsonConverter<IActorScope>

IActorScope 的自定义 JSON 转换器,将 IActorScope 对象序列化为 ProtoActorScope 结构体

构造函数 ​

IActorScopeJsonConverter 双端 ​

csharp
public IActorScopeJsonConverter()

方法 ​

Read 双端 ​

csharp
public override IActorScope? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, IActorScope value, JsonSerializerOptions options)

IAttachedObjectJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class IAttachedObjectJsonConverter : JsonConverter<IAttachedObject>

IAttachedObject 的自定义 JSON 转换器,将 IAttachedObject 对象序列化为 ProtoIAttachedObject 结构体

构造函数 ​

IAttachedObjectJsonConverter 双端 ​

csharp
public IAttachedObjectJsonConverter()

方法 ​

Read 双端 ​

csharp
public override IAttachedObject? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, IAttachedObject value, JsonSerializerOptions options)

ICooldownHostJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class ICooldownHostJsonConverter : JsonConverter<ICooldownHost>

ICooldownHost 的自定义 JSON 转换器,将 ICooldownHost 对象序列化为 ProtoICooldownHost 结构体

构造函数 ​

ICooldownHostJsonConverter 双端 ​

csharp
public ICooldownHostJsonConverter()

方法 ​

Read 双端 ​

csharp
public override ICooldownHost? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, ICooldownHost value, JsonSerializerOptions options)

IExtendedEnumJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class IExtendedEnumJsonConverter : JsonConverter<IExtendedEnum>

IExtendedEnum 的自定义 JSON 转换器(接口版本,作为后备) 将 IExtendedEnum 对象序列化为 {"enumHash": 12345} 格式

构造函数 ​

IExtendedEnumJsonConverter 双端 ​

csharp
public IExtendedEnumJsonConverter()

方法 ​

Read 双端 ​

csharp
public override IExtendedEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, IExtendedEnum value, JsonSerializerOptions options)

IGameLinkJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class IGameLinkJsonConverter : JsonConverter<IGameLink>

IGameLink 的自定义 JSON 转换器,将 IGameLink 对象序列化为 ProtoIGameLink 结构体(非泛型后备)

构造函数 ​

IGameLinkJsonConverter 双端 ​

csharp
public IGameLinkJsonConverter()

方法 ​

Read 双端 ​

csharp
public override IGameLink? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, IGameLink value, JsonSerializerOptions options)

IGameLinkJsonConverterFactory 双端 ​

命名空间 GameCore.Serialization

csharp
public class IGameLinkJsonConverterFactory : JsonConverterFactory

IGameLink<T> 泛型版本的 JSON 转换器工厂 处理所有 IGameLink<T> 类型(如 IGameLink<GameDataBuff>),避免循环引用

构造函数 ​

IGameLinkJsonConverterFactory 双端 ​

csharp
public IGameLinkJsonConverterFactory()

方法 ​

CanConvert 双端 ​

csharp
public override bool CanConvert(Type typeToConvert)

CreateConverter 双端 ​

csharp
public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options)

InventoryJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class InventoryJsonConverter : JsonConverter<Inventory>

Inventory 的自定义 JSON 转换器,将 Inventory 对象序列化为 ProtoInventory 结构体

构造函数 ​

InventoryJsonConverter 双端 ​

csharp
public InventoryJsonConverter()

方法 ​

Read 双端 ​

csharp
public override Inventory? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, Inventory value, JsonSerializerOptions options)

InventorySlotJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class InventorySlotJsonConverter : JsonConverter<InventorySlot>

InventorySlot 的自定义 JSON 转换器,将 InventorySlot 对象序列化为 ProtoInventorySlot 结构体

构造函数 ​

InventorySlotJsonConverter 双端 ​

csharp
public InventorySlotJsonConverter()

方法 ​

Read 双端 ​

csharp
public override InventorySlot? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, InventorySlot value, JsonSerializerOptions options)

ItemJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class ItemJsonConverter : JsonConverter<Item>

Item 的自定义 JSON 转换器,将 Item 对象序列化为 ProtoItem 结构体

构造函数 ​

ItemJsonConverter 双端 ​

csharp
public ItemJsonConverter()

方法 ​

Read 双端 ​

csharp
public override Item? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, Item value, JsonSerializerOptions options)

PlayerJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class PlayerJsonConverter : JsonConverter<Player>

Player 的自定义 JSON 转换器,将 Player 对象序列化为 ProtoPlayer 结构体

构造函数 ​

PlayerJsonConverter 双端 ​

csharp
public PlayerJsonConverter()

方法 ​

Read 双端 ​

csharp
public override Player? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, Player value, JsonSerializerOptions options)

SceneJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class SceneJsonConverter : JsonConverter<Scene>

Scene 的自定义 JSON 转换器,将 Scene 对象序列化为 ProtoScene 结构体

构造函数 ​

SceneJsonConverter 双端 ​

csharp
public SceneJsonConverter()

方法 ​

Read 双端 ​

csharp
public override Scene? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, Scene value, JsonSerializerOptions options)

ScenePointJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class ScenePointJsonConverter : JsonConverter<ScenePoint>

ScenePoint 的自定义 JSON 转换器,将 ScenePoint 对象序列化为 ProtoScenePoint 结构体

构造函数 ​

ScenePointJsonConverter 双端 ​

csharp
public ScenePointJsonConverter()

方法 ​

Read 双端 ​

csharp
public override ScenePoint Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, ScenePoint value, JsonSerializerOptions options)

TimeSpanJsonConverter 双端 ​

命名空间 GameCore.Serialization

csharp
public class TimeSpanJsonConverter : JsonConverter<TimeSpan>

TimeSpan 的自定义 JSON 转换器

构造函数 ​

TimeSpanJsonConverter 双端 ​

csharp
public TimeSpanJsonConverter()

方法 ​

Read 双端 ​

csharp
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

Write 双端 ​

csharp
public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)