主题
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 : JsonConverterFactoryIGameLink<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)