将任务类型保存为String,导致灾难性故障
我正在尝试将我在Canvas上编写的Ink保存在类中,并使用此链接中的这两种方法重新加载它。
private async Task WriteInk() { using (var stream = new InMemoryRandomAccessStream()) { await inkManager.SaveAsync(stream); await stream.FlushAsync(); stream.Seek(0); byte[] bytes = new byte[stream.Size]; IBuffer buffer = bytes.AsBuffer(); await stream.ReadAsync(buffer, (uint)stream.Size, InputStreamOptions.None); return Convert.ToBase64String(bytes); } } private async void ReadInk(string base64) { if (string.IsNullOrEmpty(base64)) return; var bytes = Convert.FromBase64String(base64); using (var stream = new InMemoryRandomAccessStream()) { await stream.WriteAsync(bytes.AsBuffer()); await stream.FlushAsync(); stream.Seek(0); await inkManager.LoadAsync(stream); if (inkManager.GetStrokes().Count > 0) { RenderInk(); } } }
我有一个类,我保存从WriteInk()
返回的base64:
public class MyCanvas { public string canvasIndex { get; set; } public String canvasStrokes { get; set; } }
我的问题是在调用WriteInk()
:
MyCanvas mc = new MyCanvas(); mc.canvasStrokes = await m_CanvasManager1.WriteInk();
我得到一个例外:灾难性的失败。 +我不能使用string
类型的canvasStrokes
并将Task
保存到它+方法ReadInk()
将base64作为string
我应该在什么类型保存Task
以便能够在第二种方法中将其用作string
?
当我调用WriteInk时,它到达await inkCanvas.SaveAsync(stream);
它返回到mc.canvasStrokes = await m_CanvasManager0.WriteInk();
并给出这个例外:
An exception of type 'System.Exception' occurred in mscorlib.dll but was not handled in user code. Additional information: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))