inf*_*ity 2 c# memorystream binaryformatter c#-4.0
我想在内存流中保存一个笔画用于此目的是使用BinaryFormatter但是当我尝试序列化Stroke时我得到一个错误,我无法序列化笔画
有没有办法在笔记本中保存笔画或序列化笔画?
这是我的代码的一部分
int size = inkCanvas1.Strokes.Count();
IFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
if (size != 0)
{
try
{
formatter.Serialize(stream, inkCanvas1.Strokes[size - 1]);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
这不起作用的原因是StrokeCollection
没有SerializableAttribute
应用.
但是你可以使用这个StrokeCollection.Save
方法.
var ms = new MemoryStream();
using (ms)
{
StrokeCollection sc = ...;
sc.Save(ms);
ms.Position = 0;
}
Run Code Online (Sandbox Code Playgroud)
然后当你StrokeCollection
再次需要时,你可以使用接受a 的构造函数Stream
.