Я планирую использовать различные объекты, представленные как COM-объекты. Чтобы упростить их использование, я хотел бы обернуть их как объекты C#. Каков наилучший подход для этого?
Лучший способ доступа к COM-объектам из С#
Ответы (2)
Если библиотека уже зарегистрирована, вы можете выполнить следующие действия, чтобы Visual Studio сгенерировала для вас сборку взаимодействия:
- Откройте для своего проекта Visual Studio.
- Щелкните правой кнопкой мыши «Ссылки» (прямо под проектом в обозревателе решений) и выберите «Добавить ссылку».
- Выберите вкладку COM. (Если вы этого не видите, ваш тип проекта не поддерживает COM.)
- Выберите компонент, с которым вы хотите взаимодействовать.
- Выберите «ОК».
Это будет класс или набор классов C#, которые обертывают весь материал COM-интерфейса обычным классом C#. Затем вы просто используете его, как и любую другую библиотеку C#. Если импорт ссылки работает хорошо, вы можете изучить ее, как и любую другую ссылку, и методы/структуры/классы/константы должны отображаться в этом пространстве имен и intellisense.
Это поможет вам начать, по крайней мере. Если это развернуто в корпоративной среде или в среде, которую вы можете контролировать, этого может быть все, что вам нужно.
Вы можете (изначально) просто импортировать ссылку. Если вам нужно больше контроля (или вы получаете ошибки при импорте VS), вы можете использовать tlbimp в Windows SDK. Это создаст сборки взаимодействия. Вы можете получить определения классов из метаданных.
РЕДАКТИРОВАТЬ: на самом деле это намного сложнее, если вы хотите работать с 64-битной