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