Нужна помощь / совет по WCF Per-Call Service и NServiceBus взаимодействия - PullRequest
0 голосов
/ 23 марта 2010

У меня есть служба WCF Per-Call, которая предоставляет данные для клиентов и в то же время интегрирована с NServiceBus.
Все объекты statefull хранятся в UnityContainer, который интегрирован в хост настраиваемой службы.
NServiceBus настроен вузел службы и использует тот же контейнер, что и экземпляры службы.
Каждый клиент имеет свой собственный контекст экземпляра (описанный Ювалом Лоуи в его книге в главе о службах долговременного обслуживания).

Если мне нужно отправить запрос по шине Iпросто используйте своего рода диспетчер и дождитесь ответа с помощью Thread.Sleep (). Так как сервисы для каждого вызова, это нормально, аааик.
Но я немного запутался в сообщениях от шины, этот сервис должен обрабатывать и предоставлять их клиентам,Для некоторых данных, таких как биржевые котировки, я просто обновляю некоторый объект statefull и затем, когда клиенты вызывают GetQuotesData (), просто предоставляю данные из этого объекта.Но есть множество служебных сообщений, таких как добавление новой цитаты и т. Д.
На данный момент у меня есть идея реализовать что-то вроде «Postman daemon» =)) и сохранять сообщения такого типа в контексте экземпляра.Затем клиент вызовет «GetMail ()», получит эти сообщения и проанализирует их.Проблема в том, что сообщения NServiceBus «основаны на интерфейсе», и я не могу передать их через WCF, поэтому мне нужно преобразовать их в типы, полученные из некоторого абстрактного класса.

Не знаю, как лучше всего справиться с этой ситуацией.Буду очень признателен за любые советы по этому вопросу.

Заранее спасибо.

1 Ответ

1 голос
/ 24 марта 2010

Рассматривали ли вы "чистое" решение NServiceBus для обратной связи с клиентами? NServiceBus уже имеет эту возможность "Демон почтальона". Сообщения NServiceBus не обязательно должны быть интерфейсами - вы также можете использовать обычные классы.

Надеюсь, это поможет.

...