Как подключить C ++ COM к службе WCF - PullRequest
1 голос
/ 03 июля 2010

Я ищу способ подключения унаследованного приложения COM + к службе WCF, я занимаюсь этим уже пару дней, и мне не повезло найти какую-либо полезную информацию, может кто-нибудь указать мне правильное направлениена этом?

Мне нужен старый COM + компонент для вызова новой службы C # WCF , поэтому мне нужен какой-то прокси в COM Компоненте, который абстрагируетобщение с Сервисом.

Заранее спасибо, я очень ценю любую помощь.

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Моникер службы WCF может автоматически генерировать COM-прокси для вашей службы WCF.Ваш код C ++ может вызывать этот прокси-сервер напрямую, без необходимости написания какого-либо прокси-кода C # или явного кода взаимодействия COM.

Подробности смотрите на http://msdn.microsoft.com/en-us/library/ms729739(VS.85).aspx.

Я особеннорекомендую эту функцию в первую очередь потому, что мне принадлежала эта функция в Microsoft.

1 голос
/ 03 июля 2010

Я предполагаю, что вы имеете в виду, что у вас есть служба WCF, и что код, который запускает вашу службу WCF, должен вызывать ваше устаревшее приложение и отправлять эти данные в / из службы WCF, правильно?Если это так, то аспект WCF вашего вопроса на самом деле не имеет значения.

То, что вы пытаетесь решить, - это заставить ваше приложение .NET сообщать COM своему унаследованному приложению.

Проверьте: Введение в COM Interop и COM Interop Tutorials .

Вам нужно будет сгенерировать библиотеки типов для вашего COM-компонента, сослаться на них и System.Runtime.InteropServices в вашем проекте C #, а затем вы сможете совершать вызовы через границы COM.вашего старого кода приложения.Существует множество других примеров и учебных пособий, если вы ищете, например, COM Interop Tutorial .


EDIT :

Я больше думал о твоей проблеме.Вам необходимо реализовать прокси-сервер, создав сервер, который «выглядит» так же, как ваш старый сервер (все те же интерфейсы COM + и т. Д.), А затем перенаправить запрос (путем создания нового запроса) в службу WCF. Вы можете сделать это в C # Белая доска ( Архив ) Основная идея вокруг этого с вашей оригинальной доске.

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