WebClientを使用してサーバーにXMLデータを送信するSilverlightカスタムコントロールを開発しています。ファイルをアップロードした後、コールバック関数を実行する必要があります。それで、問題は、ファイルのアップロードが完了したことをどうやって知ることができるかということです。これが私が書いたコードです:
WebClient wc = new WebClient();
wc.OpenWriteCompleted += new OpenWriteCompletedEventHandler(wc_OpenWriteCompleted);
Uri uri = new Uri(myUrl);
wc.OpenWriteAsync(uri, "POST", data);
...
private void wc_OpenWriteCompleted(object sender, OpenWriteCompletedEventArgs e){
if (e.Error == null)
{
byte[] fileContent = e.UserState as byte[];
Stream outputStream = e.Result;
outputStream.Write(fileContent, 0, fileContent.Length);
outputStream.Flush();
outputStream.Close();
}
HtmlPage.Window.Invoke("callBackFunction");
}
それはすべて私には良さそうに見えましたが、2つの問題があります。1つは、ファイルのアップロードが完了したときにwc_OpenWriteCompletedが実際に実行されているかどうかはわかりません。どうすれば確認できますか?コールバック関数。ファイルが完全でない場合、何も実行されません。それはそのコールバックを戻すのに適切な場所ですか?最後に、呼び出しが行われた後、サーバーはいくつかのテストで応答しますが、それをコールバック関数に渡すにはどうすればよいですか?