-
Notifications
You must be signed in to change notification settings - Fork 9
编解码
Kakous edited this page Mar 21, 2019
·
1 revision
Uragano默认采用MessagePack编解码,你也可以通过实现ICodec接口自定义编解码
public class MessagePackCodec : ICodec
{
public MessagePackCodec()
{
CompositeResolver.RegisterAndSetAsDefault(NativeDateTimeResolver.Instance, ContractlessStandardResolverAllowPrivate.Instance);
MessagePackSerializer.SetDefaultResolver(ContractlessStandardResolverAllowPrivate.Instance);
}
public byte[] Serialize<TData>(TData data)
{
return MessagePackSerializer.Typeless.Serialize(data);
}
public object Deserialize(byte[] data, Type type)
{
return data == null ? null : MessagePackSerializer.Typeless.Deserialize(data);
}
public T Deserialize<T>(byte[] data)
{
return data == null ? default : (T)MessagePackSerializer.Typeless.Deserialize(data);
}
public string ToJson<TData>(TData data)
{
return data == null ? default : MessagePackSerializer.ToJson(data);
}
}
service.AddUragano(context.Configuration, builder =>
{
builder.AddServer();
builder.AddConsul();
builder.AddCodec<MessagePackCodec>();
});