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);
}