2012-03-28 5 views
0

Я новичок в WCF, а теперь проектирую службу с помощью Pub/Sub с помощью обратного вызова. У меня есть этот глупый вопрос: как я могу использовать обратный вызов? Предположим, у меня есть интерфейс обратного вызова ICallback с одной функцией ProcessResult(). И у меня есть класс реализации MyCallback. Тогда в моей стороне клиента, я могу инициализировать его следующим образом:Как использовать результат обратного вызова в WCF?

Dim cb As ICallback = New MyCallback() 
Dim MyClient = New MyServiceClient(New InstanceContext(cb)) 

Класс MyServiceClient генерируется с использованием svcutil.exe. Теперь, когда сервер WCF получает информацию, которую интересует клиент, он вызывает функцию обратного вызова ProcessResult(). Все онлайн-примеры, которые я нашел онлайн, для простоты, просто выводят строку внутри функции обратного вызова. Но в реальной жизни мне нужно передать эту информацию из класса MyCallback. Здесь я потерял: поскольку на моей стороне мои объекты используют только функции объекта MyClient, а не cb, как я могу реализовать функцию ProcessResult(), чтобы объекты-клиенты могли быть осведомлены о том, что эта функция называется? Я могу, например, поднять событие, объявленное в классе MyCallback, внутри этой функции, но поскольку объекты на стороне клиента не имеют ссылки на cb, как я могу обработать какой-либо обработчик событий?

ответ

0

У svcutil есть опция /async, которая позволяет вам генерировать вызовы асинхронного вызова. Разве вам это не помогает?

Смежные вопросы