Класс ComVisible (false) с членами ComVisible (true) - PullRequest
3 голосов
/ 18 августа 2010

Я готовлюсь к сертификационным экзаменам Microsoft и столкнулся с ситуацией с классом, который не был ComVisible, но имел методы, которые были. Я предположил, что, поскольку класс не был виден для COM, его члены не будут доступны. Тем не менее, очевидно, что члены могут быть ComVisible, даже если класс не.

Как COM может получить доступ к члену класса, если он не может получить доступ к классу с самого начала?

У меня никогда не было опыта работы с COM-сборками .NET. Это мало что значит для меня.

1 Ответ

4 голосов
/ 18 августа 2010

Вы, вероятно, сталкивались с примером кода на странице документации MSDN для ComVisibleAttribute. Да, это подделка. С той же страницы, мой акцент:

Установка атрибута в false для определенного типа скрывает этот тип и его члены. Однако нельзя сделать члены типа видимыми, если тип невидим. Установка атрибута в false для типа запрещает экспорт этого типа в библиотеку типов; занятия не зарегистрированы; интерфейсы никогда не реагируют на неуправляемые вызовы QueryInterface.

Неверный пример кода.

...