Нет Intellisense для C# COM-объекта взаимодействия - PullRequest
0 голосов
/ 02 мая 2020

Я использую VS2010 и ссылаюсь на внешний COM-объект из моего C# кода.

Я добавил ссылку на COM-объект через его запись на вкладке добавления ссылки "COM", а затем объявил объект , Я ожидал этого, когда использовал объект и набрал "." Я бы получил список методов; но вместо этого я получаю сообщение «Нет предложений». Я вижу это в списке, и нет ошибки, помеченной.

Другая странная вещь заключается в том, что в операторе using для пространства имен COM-объекта он выделяет пространство имен красным цветом и говорит «не удается разрешить символ». Это также происходит для имени интерфейса, когда я объявляю объект. Ни один из них не приводит к ошибке компиляции.

Я открыл метаданные для интерфейса Interop, щелкнув правой кнопкой мыши на интерфейсе и выбрав «go to reference». Там я вижу, что интерфейс опубликован c и все методы объявлены. Кроме того, после ввода правильного метода и наведения на него VS показывает правильный прототип и ничего не показывает, если я ввожу его неправильно; Итак, VS знает, какие допустимые методы существуют для объекта; но он сообщает только об опечатке, когда я компилирую, и не дает мне Intellisense, когда я печатаю.

Это сильно замедляет меня, поскольку COM-объект - это МНОГО методов, и часто дело обстоит немного непредсказуемы; поэтому я постоянно вынужден просматривать документ API при написании кода.

Кто-нибудь знает, почему Intellisense не работает с этим объектом и если / как это исправить?

I разместил бы часть кода здесь; но, поскольку это личный код поставщика, я решил, что лучше описать проблему. Кажется, они немного чувствительны к своему коду.

Вот несколько снимков экрана, чтобы продемонстрировать то, что я наблюдал. Ссылка на взаимодействие для библиотеки

Reference

Пространство имен не разрешено

enter image description here

Может не удается найти интерфейс I250B

Can't find class

Не удается разрешить пространство имен; но все равно находит Класс

Can't find Namespace Found SA2500

Даже с учетом вышеприведенных проблем код компилируется без ошибок или предупреждений

enter image description here

VS может видеть и сообщать метаданные библиотеки

SA250BLib.I250B Interface Metadata SA250BLib.SA250B Interface Metadata

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