我正在尝试将序列化对象保存到文件中。当我调用OpenStreamForWriteAsync
方法时,UI会锁定并且过程似乎永远不会结束。不知道我在这里做错了什么。
public async Task<string> Save(string fileName)
{
MemoryStream ms = new MemoryStream();
var serializer = new DataContractSerializer(typeof(Settings));
serializer.WriteObject(ms, this);
ms.Position = 0;
try
{
using (var fms = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(fileName, CreationCollisionOption.ReplaceExisting))
{
serializer.WriteObject(fms, this);
return "Saved successfully";
}
}
catch
{
return "Could not save.";
}
}
这是我关于StackOverflow的第一个问题,但是一直是学习者。任何帮助表示赞赏。
答案 0 :(得分:0)
发现问题。在调用这种方法时我并没有等待。需要使用以下方法调用该方法:
string result = await Settings.Save("settings.xml");
将方法重命名为SaveAsync
作为提醒。