Вспомогательные тексты теряются при обращении к COM DLL - PullRequest
4 голосов
/ 10 августа 2011

Я почти ничего не знаю о COM, но я постараюсь прояснить этот вопрос настолько, насколько это возможно.

У меня есть проект .NET 4.0, и я ссылаюсь на более старую COM DLL, написанную на VBScript.

Когда я использую эту DLL в коде, в VS2010 я не получаю никаких специальных текстов помощи, описывающих методы и классы. Они также недоступны в браузере объектов.

Полагаю, это как-то связано с автоматической оболочкой, применяемой .NET к библиотеке COM. Похоже, что тексты помощи теряются в процессе.

Когда я смотрю dll прямо в браузере объектов VS, я вижу тексты методов и т. Д.

Есть ли способ сохранить описывающие тексты для кодирования с помощью упомянутой COM dll?

1 Ответ

0 голосов
/ 13 сентября 2011

Вы ссылаетесь на встроенную справочную документацию, доступную для классов .NET, а не на информацию о типе параметра? Если так, то я разделяю ваше разочарование. Я приложил немало усилий, чтобы написать комментарии строки помощи в моем IDL, чтобы программисты на C # использовали мой COM-объект через COM-взаимодействие, чтобы обнаружить, что ни один из них не выжил при импорте библиотеки типов.

Об этом поведении говорится в книге Адама Натана «.NET и COM: Полное руководство по взаимодействию» в разделе «Часто задаваемые вопросы: почему импортер библиотеки типов не сохраняет содержимое строки справки в DescriptionAttribute автоматически?». Я нашел эту книгу очень полезной для изучения взаимодействия COM, несмотря на ее возраст. Его также можно купить в форматах Kindle, epub и pdf.

Объяснение Адама Натана заключается в том, что атрибуты строки помощи не переводятся в System.ComponentModel.DescriptionAttribute объекты, поскольку DescriptionAttributes предназначены для элементов управления Windows и не могут быть локализованы.

В личном плане я все равно предпочел бы, чтобы атрибуты строки помощи были переведены в любом случае. Возможно, эту функцию можно было бы добавить к импортеру библиотеки типов codeplex, указанному выше, если он этого еще не сделал.

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