ユーザーの SkyDrive アカウントから 3 つの異なるファイルをダウンロードしようとしている次のコードがあります。
Windows Phone の開発には SkyDrive API を使用しています。
client.DownloadCompleted += new EventHandler<LiveDownloadCompletedEventArgs>(OnDownloadCompletedVI);
client.DownloadAsync(fileIdVehicleItems);
client.DownloadCompleted += new EventHandler<LiveDownloadCompletedEventArgs>(OnDownloadCompletedHI);
client.DownloadAsync(fileIdHistoryItems);
client.DownloadCompleted += new EventHandler<LiveDownloadCompletedEventArgs>(OnDownloadCompletedRI);
client.DownloadAsync(fileIdRepairItems);
これを実行すると、呼び出される唯一のメソッドは OnDownloadCompletedVI です。ダウンロード中のすべてのファイルがこの方法で実行されているため、エラーが発生しています。
私は間違って何をしていますか?
アップデート
私は次の方法を持っていますが、(ダウンロードしたファイルに基づいて)異なるオブジェクトをロードすることを除いて、まったく同じことを行う他の2つの同様の方法があります。
私が現在受け取っているエラー:
タイプ 'System.ArgumentException' の例外が mscorlib.ni.dll で発生しましたが、ユーザー コードで処理されませんでした
void OnDownloadCompletedVI(object sender, LiveDownloadCompletedEventArgs e)
{
if (e.Result != null)
{
using (var stream_vi = e.Result)
{
StreamReader SRVI = new StreamReader(stream_vi);
string contentVI = "";
contentVI = SRVI.ReadToEnd();
StringReader rdr_vi = new StringReader(contentVI);
XmlSerializer serializer = new XmlSerializer(typeof(ObservableCollection<vehicle>));
ObservableCollection<vehicle> importedVehicles = new ObservableCollection<vehicle>();
importedVehicles = (ObservableCollection<vehicle>)serializer.Deserialize(rdr_vi);
StorageHelper.Save<ObservableCollection<vehicle>>(App.vehicleData, importedVehicles);
}
//e.Result.Close();
}
else
{
infoTextBlock.Text = "Error downloading file: " + e.Error.ToString();
}
}