client.UploadAsync
Live SDK(SkyDrive SDK)の方法に少し問題があります。何らかの理由で私のコードが機能しないか、より具体的には空のファイルをアップロードします。エラーは発生せず、ストリームへのシリアル化は機能します(確かにそれはわかっています)。
メモリストリームはOKのようです。(実際にデータを表示するツールがないため、'Length'プロパティを確認することで問題ないと思います)。
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(); }
}
}
}