0

我需要通过网络复杂对象进行传输System.Windows.Ink.StrokeCollection。我怎样才能序列化它?该类型不实现ISerializable接口。我System.Runtime.Serialization.Formatters.Binary.BinaryFormatter用于序列化。
我已经在考虑对我的笔画集合的开放字段进行 XML 序列化,并将这个 XML 作为公共字符串传输,但这会在网络上产生更大的负载并影响整体性能。有没有办法将我的集合序列化为字节数组来传输它?

4

1 回答 1

3

StrokeCollection 有一个Save(Stream)方法,它将 StrokeCollection 保存到指定的 Stream。

这是一种序列化StrokeCollection的方法

var memoryStream = new MemoryStream();
using (memoryStream)
{
    StrokeCollection strokeCollection; //Your stroke collection ommitted the declaration
    strokeCollection.Save(ms);
    ms.Position = 0;
}

现在,当您想要反序列化它时,您可以将 MemoryStream 传递给StrokeCollection的构造函数。

更多可以在这里找到。我就是这样做的。

于 2013-11-05T21:38:22.707 回答