Я разрабатываю надстройку для коммерческого приложения, чтобы предоставить очень простую информацию о документе, открытом в этом приложении, и так далее.Само приложение не поддерживает надстройки COM или NET, а только надстройку C ++ в DLL.
Я хочу предоставить некоторую информацию клиентам COM, а некоторые - клиентам NET, работающим на той же машине.* Для клиентов COM я разработал в C # реализацию интерфейса COM;затем я создаю объект при запуске хост-приложения и регистрирую объект в таблице запущенных объектов.Вывод этой реализации из StandardOleMarshalObject
кажется достаточным для решения проблемы потоков: очевидно, методы моей реализации вызываются только в основном потоке пользовательского интерфейса на границе сообщения, что является требованием.
А для клиентов NET?Мне нужна разная информация, и мне не нужно полагаться на конкретный интерфейс COM для раскрытия этой информации.У меня был соблазн разработать и разместить службу WCF, но мои методы службы вызываются на не-UI therad и происходит сбой приложения хоста.Как мне повторить поведение StandardOleMarshalObject
в контексте WCF?Мне нужно реализовать IOperationInvoker
?Любое предложение сделать это ?
Спасибо всем и, пожалуйста, извините за мой плохой английский.