diff --git a/src/JT808.Protocol/JT808Serializer.cs b/src/JT808.Protocol/JT808Serializer.cs index e901354..87b3c6f 100644 --- a/src/JT808.Protocol/JT808Serializer.cs +++ b/src/JT808.Protocol/JT808Serializer.cs @@ -1,12 +1,12 @@ -using JT808.Protocol.Enums; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Text; +using System.Text.Json; +using JT808.Protocol.Enums; using JT808.Protocol.Extensions; using JT808.Protocol.Formatters; using JT808.Protocol.Internal; using JT808.Protocol.MessagePack; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Text; -using System.Text.Json; [assembly: InternalsVisibleTo("JT808.Protocol.DependencyInjection")] namespace JT808.Protocol @@ -14,7 +14,7 @@ namespace JT808.Protocol /// /// JT808序列化器 /// - public class JT808Serializer + public class JT808Serializer { private readonly static JT808Package jT808Package = new JT808Package(); @@ -30,11 +30,11 @@ namespace JT808.Protocol static JT808Serializer() { - Instance= new JT808Serializer(); + Instance = new JT808Serializer(); } - + /// - /// + /// ctor /// /// public JT808Serializer(IJT808Config jT808Config) @@ -43,26 +43,26 @@ namespace JT808.Protocol } /// - /// + /// ctor /// - public JT808Serializer():this(new DefaultGlobalConfig()) + public JT808Serializer() : this(new DefaultGlobalConfig()) { } /// - /// + /// 标识 /// public string SerializerId => jT808Config.ConfigId; private readonly IJT808Config jT808Config; /// - /// + /// 序列化数据包 /// - /// - /// - /// - /// + /// 数据包 + /// 协议版本 + /// 最低所需缓冲区大小 + /// 元数据 public byte[] Serialize(JT808Package package, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) { byte[] buffer = JT808ArrayPool.Rent(minBufferSize); @@ -78,12 +78,12 @@ namespace JT808.Protocol } } /// - /// + /// 反序列化 /// - /// - /// - /// - /// + /// 元数据 + /// 协议版本 + /// 最低所需缓冲区大小 + /// 数据包 public JT808Package Deserialize(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) { byte[] buffer = JT808ArrayPool.Rent(minBufferSize); @@ -99,14 +99,14 @@ namespace JT808.Protocol } } /// - /// + /// 序列化 /// /// - /// - /// - /// - /// - public byte [] Serialize(T obj, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) + /// 数据包 + /// 协议版本 + /// 最低所需缓冲区大小 + /// 元数据 + public byte[] Serialize(T obj, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) where T : JT808Package { byte[] buffer = JT808ArrayPool.Rent(minBufferSize); try @@ -122,20 +122,20 @@ namespace JT808.Protocol } } /// - /// + /// 根据泛型反序列化元数据 /// /// - /// - /// - /// - /// - public T Deserialize(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) + /// 元素书 + /// 协议版本 + /// 最低所需缓冲区大小 + /// 数据包 + public T Deserialize(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) where T : JT808Package { byte[] buffer = JT808ArrayPool.Rent(minBufferSize); try { JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(bytes, version); - if(CheckPackageType(typeof(T))) + if (CheckPackageType(typeof(T))) jT808MessagePackReader.Decode(buffer); var formatter = jT808Config.GetMessagePackFormatter(); return formatter.Deserialize(ref jT808MessagePackReader, jT808Config); @@ -146,9 +146,9 @@ namespace JT808.Protocol } } /// - /// + /// 验证类型是否为或者 /// - /// + /// 需要验证的类型 /// private static bool CheckPackageType(Type type) { @@ -156,12 +156,12 @@ namespace JT808.Protocol } /// - /// 用于负载或者分布式的时候,在网关只需要解到头部。 - /// 根据头部的消息Id进行分发处理,可以防止小部分性能损耗。 + /// 反序列化消息头 + /// 用于负载或者分布式的时候,在网关只需要解到头部,根据头部的消息Id进行分发处理,可以防止小部分性能损耗。 /// - /// - /// - /// + /// 元数据 + /// 协议版本 + /// 最低所需缓冲区大小 /// public JT808HeaderPackage HeaderDeserialize(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) { @@ -170,7 +170,7 @@ namespace JT808.Protocol { JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(bytes, version); jT808MessagePackReader.Decode(buffer); - return new JT808HeaderPackage(ref jT808MessagePackReader,jT808Config); + return new JT808HeaderPackage(ref jT808MessagePackReader, jT808Config); } finally { @@ -178,12 +178,12 @@ namespace JT808.Protocol } } /// - /// + /// 根据类型反序列化 /// - /// - /// - /// - /// + /// 元数据 + /// 类型 + /// 协议版本 + /// 最低所需缓冲区大小 /// public object Deserialize(ReadOnlySpan bytes, Type type, JT808Version version = JT808Version.JTT2013, int minBufferSize = 4096) { @@ -202,14 +202,14 @@ namespace JT808.Protocol } } /// - /// + /// 分析元数据至json /// - /// - /// - /// - /// + /// 元数据 + /// 协议版本 + /// json选项 + /// 最低所需缓冲区大小 /// - public string Analyze(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, JsonWriterOptions options = default, int minBufferSize = 8096) + public string Analyze(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, JsonWriterOptions options = default, int minBufferSize = 8096) { byte[] buffer = JT808ArrayPool.Rent(minBufferSize); try @@ -226,16 +226,16 @@ namespace JT808.Protocol finally { JT808ArrayPool.Return(buffer); - } + } } /// - /// + /// 分析元数据至json /// /// - /// - /// - /// - /// + /// 元数据 + /// 协议版本 + /// json序列化选项 + /// 最低所需缓冲区大小 /// public string Analyze(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, JsonWriterOptions options = default, int minBufferSize = 8096) { @@ -270,12 +270,12 @@ namespace JT808.Protocol /// 序列化选项 /// 默认65535 /// - public string Analyze(ushort msgid,ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, JsonWriterOptions options = default, int minBufferSize = 65535) + public string Analyze(ushort msgid, ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, JsonWriterOptions options = default, int minBufferSize = 65535) { byte[] buffer = JT808ArrayPool.Rent(minBufferSize); try { - if(jT808Config.MsgIdFactory.TryGetValue(msgid,out object msgHandle)) + if (jT808Config.MsgIdFactory.TryGetValue(msgid, out object msgHandle)) { if (msgHandle is IJT808MessagePackFormatter instance) { @@ -336,12 +336,12 @@ namespace JT808.Protocol } } /// - /// + /// 分析元数据至json /// - /// - /// - /// - /// + /// 元数据 + /// 协议版本 + /// json选项 + /// 最低所需缓冲区大小 /// public byte[] AnalyzeJsonBuffer(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, JsonWriterOptions options = default, int minBufferSize = 8096) { @@ -362,13 +362,13 @@ namespace JT808.Protocol } } /// - /// + /// 分析元数据至json /// /// - /// - /// - /// - /// + /// 元数据 + /// 协议版本 + /// json选项 + /// 最低所需缓冲区大小 /// public byte[] AnalyzeJsonBuffer(ReadOnlySpan bytes, JT808Version version = JT808Version.JTT2013, JsonWriterOptions options = default, int minBufferSize = 8096) { @@ -400,9 +400,9 @@ namespace JT808.Protocol /// public JT808Serializer Register(params Assembly[] externalAssemblies) { - if(externalAssemblies!=null && externalAssemblies.Length > 0) + if (externalAssemblies != null && externalAssemblies.Length > 0) { - foreach(var asm in externalAssemblies) + foreach (var asm in externalAssemblies) { jT808Config.Register(asm); }