2

我正在使用 Microsoft.Bond 序列化一个运行良好的类对象。但是,当我尝试序列化一个简单的 System.String 对象时,CompactBinaryWriter 几乎没有向输出缓冲区写入任何内容。我正在使用这段代码:

string v = "test data";
var outputBuffer = new OutputBuffer();
var writer = new CompactBinaryWriter<OutputBuffer>(outputBuffer);
Serialize.To(writer, v);
var output = outputBuffer.Data;

output在这种情况下,是一个单元素数组:{0},与 v 的值无关。有人能指出为什么这不起作用吗?

4

1 回答 1

1

Bond 需要一个顶级的 Bond 结构来执行序列化/反序列化。

如果只需要传递/返回一个值,则bond.Box<T>可以使用该类型将值快速包装到 Bond 结构中。bond.Box<T>(除了它与 Bond 一起提供之外,没有什么特别之处。)

尝试这个:

Serialize.To(writer, Bond.Box.Create(v));

您需要反序列化为bond.Box<string>.

在这种情况下,有一个关于更好的行为的公开问题。

于 2019-11-21T01:18:03.057 回答