AutoCSer 包含一个高性能 JSON 序列化组件,支持若干全局默认配置,支持 31 种常用数据类型组合的随机对象 单线程 30W+/s 序列化 操作,需要引用 AutoCSer\Packet\*\AutoCSer.dll。

. 支持成员选择配置,默认选择所有公共字段与属性成员。为了兼容数据结构定义更新,序列化与反序列化的忽略成员配置可以分别配置。

仅选择公共字段成员 参考示例 AutoCSer\Example\Json\PublicInstanceField.cs
支持匿名类型序列化 参考示例 AutoCSer\Example\Json\AnonymousType.cs
忽略成员 参考示例 AutoCSer\Example\Json\IgnoreMember.cs
序列化忽略成员 参考示例 AutoCSer\Example\Json\SerializeIgnoreMember.cs
反序列化忽略成员 参考示例 AutoCSer\Example\Json\ParseIgnoreMember.cs

. 除了成员选择配置,还默认支持临时性的成员位图选择序列化成员。成员位图选择仅对数据根节点有效,如果需要在子节点中支持成员位图选择,需要自定义成员位图数据对象。

成员位图选择 参考示例 AutoCSer\Example\Json\MemberMap.cs
成员位图数据对象 参考示例 AutoCSer\Example\Json\MemberMapValue.cs

. 为了方便数据类型的抽象重用,默认支持数据基类配置入侵数据派生类型,也就是该数据基类的所有派生类型的序列化处理都默认当成该数据基类处理。

参考示例 AutoCSer\Example\Json\BaseType.cs

. 支持自定义序列化函数,对于引用类型必须是静态函数,对于值类型必须是成员函数,定义的序列化与反序列化两个函数并自行保证序列化数据的可逆性。

引用类型 参考示例 AutoCSer\Example\Json\CustomClass.cs
值类型 参考示例 AutoCSer\Example\Json\CustomStruct.cs

. 对于找不到默认构造函数的数据类型的反序列化支持自定义构造函数,比如抽象类型。

参考示例 AutoCSer\Example\Json\NoConstructor.cs

. 对于不符合 C# 类型规范的 JSON 字符串支持 JSON 节点解析。

参考示例 AutoCSer\Example\Json\SerializeNode.cs