gpt4 book ai didi

c# - 使用 MsgPack 而不是使用 MsgPack Cli 的 Json 序列化 c# 对象

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:02 30 4
gpt4 key购买 nike

我正在尝试使用 C# 中的 MsgPack 实现一种 JSON 序列化我正在使用 MsggPack CLI,您可以在 https://github.com/msgpack/msgpack-cli

根据msgpack.org文档,序列化模型

{"model":"message"}

六边形

81 a5 6d 6f 64 65 6c a7 6d 65 73 73 61 67 65

但是当尝试在 C# 中做同样的事情时(当然是用一种天真的方法)

using MsgPack.Serialization;

public class Test
{
public string model { get; set; }
}

public class Program
{
static void Main(string[] args)
{
Test a = new Test();
a.model = "message";

var requestSerializer = MessagePackSerializer.Get(a.GetType());
MemoryStream stream = new MemoryStream();
requestSerializer.Pack(stream, a);
byte[] res = stream.ToArray();
}
}

我得到

91 a7 6d 65 73 73 61 67 65

跳过“模型”名称的地方...

如何解决???

最佳答案

终于找到了简单的方法。根据文档,序列化格式默认为“数组”,而我需要“ map ”。使用

SerializationContext ctx = new SerializationContext() { SerializationMethod = SerializationMethod.Map };
...

var requestSerializer = MessagePackSerializer.Get(a.GetType(), ctx);

制作技巧。

问候

关于c# - 使用 MsgPack 而不是使用 MsgPack Cli 的 Json 序列化 c# 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38597954/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com