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

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