Используется ли System.Runtime.InteropServices.GuidAttribute для чего угодно, кроме взаимодействия COM - PullRequest
6 голосов
/ 04 января 2012

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

Комментарий проверки не дает никакого просветления (он ссылается на другие, казалось бы, не связанные изменения, сделанные одновременно); и при этом не читал мой почтовый трафик в течение нескольких дней с обеих сторон изменения.

Ответы [ 2 ]

5 голосов
/ 04 января 2012

Тип в .NET всегда имеет Guid, используете ли вы атрибут или нет. Доступно через свойство Type.GUID. CLR автоматически генерирует один из определения типа, гарантируя, что идентичные типы имеют одинаковые направляющие независимо от того, на каком компьютере оно генерируется. Обратите внимание, что это очень отличается от обычного способа генерации Guid.

Атрибут [Guid] используется только в том случае, если вы хотите переопределить автоматически созданный guid. Что полезно только в сценариях взаимодействия COM, чтобы получить объявление, совпадающее с существующим интерфейсом COM или коклассом. Он всегда должен находиться рядом с атрибутом [ComVisible] или [ComImport].

1 голос
/ 04 января 2012

Атрибут Guid был введен для взаимодействия COM - но ничто не мешает вам (или любой другой третьей стороне) использовать его для других целей.

Атрибуты, как правило, предоставляют дополнительную информацию («метаданные»), которая может использоваться другим кодом, как бы это ни подходило.

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