将输出流输出到String

时间:2017-07-22 14:37:46

标签: c# .net uwp windows-10-universal

所以我想序列化一个包含来自IReadOnlyList<InkStroke>的{​​{1}}的类,因为我正在使用UWP应用。

我使用Windows.UI.Input.Inking来序列化我的类,但我需要先将IReadOnlyList序列化为DataContractSerializerstring,以便可以序列化byte[]

DataContractSerializer保存笔画的最合适方法是StrokeContainer方法,该方法接收StrokeContainer.SaveAsync()

如何创建IOutputStream,然后将输出捕获为IOutputStreamstring

以下是我尝试将此功能实现的方法:

byte[]

1 个答案:

答案 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);
相关问题