C # асинхронный дескриптор объекта мыла - PullRequest
1 голос
/ 12 октября 2010

Есть ли способ присоединить обработчик к мыльному вызову?

Например:

Я вызываю проверку для каждой строки в сетке данных.Это тогда вызывает асинхронный сервис мыла.По возвращении асинхронного можно ли узнать, для какой строки я его вызвал, не передавая какой-то идентификатор туда и обратно?

Спасибо

Ответы [ 2 ]

2 голосов
/ 12 октября 2010

Если делать один вызов для каждой строки. Вы можете передать строку как пользовательское состояние. Например, используя основанный на событиях асинхронный метод http://msdn.microsoft.com/en-us/library/ms730059.aspx.

client.AddCompleted += new EventHandler<AddCompletedEventArgs>(AddCallback);
client.AddAsync(value1, value2, row);

И получить строку в методе обратного вызова

static void AddCallback(object sender, AddCompletedEventArgs e) { var row = e.UserState as RowType; }
0 голосов
/ 12 октября 2010

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

Это похоже на обработчики, например, для нажатия кнопок.Если вы используете один и тот же обработчик для нескольких кнопок, вам нужно проверить объект sender.

Я предлагаю вам использовать значение в заголовках HTTP для установки идентификатора и возврата вызывающей стороны.В некотором смысле, это не должно быть в вашем сообщении Soap, так как серверу не нужно знать о вашем идентификаторе.

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