client.UploadAsync
Live SDK(SkyDrive SDK)的方法有点问题。我的代码由于某种原因不起作用,或者更具体地说,它上传了一个空文件。它不会抛出任何错误,并且流的序列化工作(我肯定知道)。
甚至似乎内存流还可以。(因为我没有工具可以真正查看其中的数据,我只是通过查看它的“长度”属性来猜测它是可以的)。
UploadAsync 方法也很好,或者至少当我第一次将数据序列化为 IsolatedStorage 中的 .xml 文件,然后使用 IsolatedStorageFileStream 读取它,然后最终发送该流时,它运行良好。(然后它上传了数据)
关于为什么会发生这种情况的任何建议?
public void UploadFile<T>(string skyDriveFolderID, T data, string fileNameInSkyDrive)
{
this.fileNameInSkyDrive = fileNameInSkyDrive;
{
try
{
memoryStream = new MemoryStream();
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.Indent = true;
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (XmlWriter xmlWriter = XmlWriter.Create(memoryStream, xmlWriterSettings))
{
serializer.Serialize(xmlWriter, data);
}
client.UploadAsync(skyDriveFolderID, fileNameInSkyDrive, true, memoryStream, null);
}
catch (Exception ex)
{
if (memoryStream != null) { memoryStream.Dispose(); }
}
}
}