Я разрабатываю пользовательский элемент управления Silverlight, где я отправляю некоторые данные XML на свой сервер с помощью WebClient. После загрузки файла мне нужно запустить функцию обратного вызова. Итак, вопрос в том, как я знаю, что это была загрузка файла? Вот код, который я написал:Функция WebClient и callback
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");
}
Это все выглядело хорошо для меня, но есть две проблемы. Один я не уверен, что wc_OpenWriteCompleted фактически работает, когда файл загружается. Как это подтвердить? Функция обратного вызова, если файл не завершен, он ничего не собирается делать. Это подходящее место, чтобы вернуть этот звонок? Наконец, сервер после некоторого теста отвечает на некоторые тесты, как я могу передать это на мою функцию обратного вызова?