У меня есть оркестровка под названием MyUsefulOrch, размещенная в приложении MySharedApp.Корреляция на портах с прямой связью MessageBox
MyUsefulOrch имеет въездной MessageBox-прямой переплете порт для приема запросов, и после того, как делать некоторые полезные работы, исходящее MessageBox-прямым переплете порта отправить сообщение абоненту.
Теперь у меня есть другая оркестровка называется MyCallerOrch который хочет извлечь выгоду из полезной обработки предоставленной MyUsefulOrch. Однако MyCallerOrch размещен в другом приложении, MyCallingApp.
Я не хочу иметь никаких ссылок на сборку, которая содержит MyUsefulOrch из MyCallerOrch.
Моя проблема теперь убедившись, что я могу послать сообщение MyUsefulOrch от MyCallerOrch и получить ответ от него.
Аах! Корреляция должна делать трюк! Но как мне добиться корреляции с работой в этом сценарии?
Например:
- бы я поставил корреляционный идентификатор в схеме собственности и запихнуть Guid в контексте сообщения по этой собственности от MyCallerOrch как раз перед его отправкой в MessageBox?
- Как убедиться, что MyCallerOrch получает только ответы, которые он должен получать от MyUsefulOrch?
- Должен ли я помещать значение идентификатора корреляции в тело сообщения сообщений, которые отправляются между двумя оркестрами?
Я был бы очень признателен за любую помощь, в идеале как можно более описательную, о том, как добиться этого.
Большое спасибо заранее.
Спасибо за ваш ответ. Итак, вы говорите, что мне нужно использовать конвейер где-нибудь, чтобы обеспечить, чтобы идентификатор корреляции был переведен в контекст сообщения? Я использую прямые связанные порты, поэтому для этого нет конвейера. BTW Я могу с удовольствием ссылаться на DLL с общей схемой, поэтому нет необходимости в нетипизированных сообщениях. –
ОК спасибо за это. Я использовал трюк инициализации набора корреляции в сообщении исходящего ответа из полезного орха, после того, как вы продвинули направляющий сигнал, который я отправил по запросу. Теперь все работает, вызывающий получает форму «после», теперь набор корреляции получает ответное сообщение. Надеюсь, это будет работать для нескольких абонентов. Я проверю это сейчас. –
Чтобы все знали, это работает с несколькими одновременными абонентами. –