OpenWriteCompletedEventArgs.Result Объяснение? - PullRequest
0 голосов
/ 27 сентября 2010

http://msdn.microsoft.com/en-us/library/system.net.openwritecompletedeventargs.result(VS.95).aspx

Я пишу приложение .NET (Silverlight API) с использованием класса WebClient. Я просто хочу получить результат в стиле XML серверного скрипта после загрузки файла Async. Я подумал, что поток Result внутри OpenWriteCompletedEventArgs был бы тем, на что я хотел бы взглянуть, но MSDN говорит, что Результатом является: «Получает доступный для записи поток, который используется для отправки данных на сервер». Я, честно говоря, не вижу, как вы напиши когда закончено. Интересно, могу ли я на самом деле прочитать из этого, и если я не могу, как я могу прочитать сообщение сервера после загрузки?

static void UploadCompleted(object sender, OpenWriteCompletedEventArgs e)
{
   /* e.Result says its only a writable stream */
}

Ответы [ 3 ]

0 голосов
/ 27 сентября 2010

Документация может быть неоднозначной или вы не используете правильный метод.Вот пример:

client.UploadFileAsync(new Uri("http://example.com"), @"c:\work\foo.txt");
client.UploadFileCompleted += (sender, e) =>
{
    // e.Result is a byte[] containing the server response 
    // which in your case is XML
};
0 голосов
/ 27 сентября 2010

Событие OpenWriteCompleted вызывается, когда установлено HTTP-соединение с сервером, а не после завершения загрузки.Вы пишете в поток, чтобы загрузить свои данные и закрыть поток, когда закончите.

Похоже, нет способа получить ответ от сервера при использовании OpenWriteAsync.

0 голосов
/ 27 сентября 2010

Нет, вы не читаете из этого. Смысл этого события состоит в том, чтобы позволить вам записать тело HTTP запроса на сервер. Если вам не нужно указывать какие-либо данные в вашем запросе, вам не нужно это событие. Если вам нужно записать данные, вы должны использовать это событие, а затем прочитать результат при запуске более поздних событий.

Если вам нужно прочитать , вы хотите сделать это, когда событие чтение завершено - например OpenReadCompleted.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...