所以我想序列化一个包含来自IReadOnlyList<InkStroke>
的{{1}}的类,因为我正在使用UWP应用。
我使用Windows.UI.Input.Inking
来序列化我的类,但我需要先将IReadOnlyList序列化为DataContractSerializer
或string
,以便可以序列化byte[]
。
从DataContractSerializer
保存笔画的最合适方法是StrokeContainer
方法,该方法接收StrokeContainer.SaveAsync()
。
如何创建IOutputStream
,然后将输出捕获为IOutputStream
或string
?
以下是我尝试将此功能实现的方法:
byte[]
答案 0 :(得分:1)
我认为您可以为流返回base64字符串是二进制文件。
第一个是将其保存到流
var stream = new InMemoryRandomAccessStream();
await canvas.InkPresenter.StrokeContainer.SaveAsync(stream);
await stream.FlushAsync();
最后一个是更改流到base64
var buffer = new byte[stream.Size];
await stream.AsStream().ReadAsync(buffer, 0, buffer.Length);
return Convert.ToBase64String(buffer);