Получение ссылки в коде .net на уже запущенный процесс - PullRequest
0 голосов
/ 26 мая 2009

Возможно ли в управляемом коде получить ссылку на уже запущенный процесс (компонент COM +) и вызвать методы для него? Вместо того, чтобы создавать экземпляр нового объекта, есть ли способ указать на уже запущенный экземпляр COM-объекта, чтобы код .net имел ссылку на запущенный процесс, как если бы он его создал - вызывать методы, как он обновился в своем собственном домене приложений?

1 Ответ

0 голосов
/ 26 мая 2009

COM

Все зависит от компонента COM. Если он спроектирован как одноэлементный (например, это поддерживается напрямую в ATL) и не используется, то получить тот же объект - единственный вариант.

С другой стороны, большинство компонентов COM не дают возможности сделать это, даже если процесс закончился. Компонент Singleton Broker / Proxy может владеть одним экземпляром рассматриваемого компонента.

Резюме: это можно сделать, но только при взаимодействии компонента клиентский код "создает экземпляр", переопределяя этот экземпляр для возврата того же объекта.

WCF

WCF может быть другим маршрутом. По умолчанию среда выполнения сервера WCF будет создавать новый экземпляр для каждого вызова. Но вы можете использовать атрибуты, чтобы переопределить это, и обслуживать все клиентские запросы в одном экземпляре (и вы должны обрабатывать параллелизм). Точно так же класс, реализующий сервисный контракт, может ссылаться на одиночный код.

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