You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
965 B
32 lines
965 B
namespace CoreAgent.WebSocketTransport.Interfaces;
|
|
|
|
/// <summary>
|
|
/// 消息序列化接口
|
|
/// 单一职责:负责消息的序列化和反序列化
|
|
/// </summary>
|
|
public interface IMessageSerializer
|
|
{
|
|
/// <summary>
|
|
/// 序列化消息为字节数组
|
|
/// </summary>
|
|
/// <typeparam name="T">消息类型</typeparam>
|
|
/// <param name="message">消息</param>
|
|
/// <returns>字节数组</returns>
|
|
byte[] Serialize<T>(T message);
|
|
|
|
/// <summary>
|
|
/// 反序列化字节数组为消息
|
|
/// </summary>
|
|
/// <typeparam name="T">消息类型</typeparam>
|
|
/// <param name="data">字节数组</param>
|
|
/// <returns>消息</returns>
|
|
T? Deserialize<T>(byte[] data);
|
|
|
|
/// <summary>
|
|
/// 反序列化字符串为消息
|
|
/// </summary>
|
|
/// <typeparam name="T">消息类型</typeparam>
|
|
/// <param name="json">JSON 字符串</param>
|
|
/// <returns>消息</returns>
|
|
T? Deserialize<T>(string json);
|
|
}
|