Подтвердить что ты не робот

Что такое атрибут Guid, который появляется над классами на С#?

Недавно я взял код С#, и один из классов имеет атрибут Guid, который находится над ним. Я не понимаю, что это такое или что он использовал.

Может кто-нибудь дать мне краткое изложение того, что это такое, или просто указать мне в сторону некоторых статей, которые дают больше информации об этом?

Спасибо!

4b9b3361

Ответ 1

Это COM-идентификатор, представляющий рассматриваемый класс. Класс предназначен для взаимодействия с COM.

Ответ 2

Вы можете взглянуть на класс ComVisibleAttribute, чтобы узнать больше о том, как сделать управляемые классы доступными для неуправляемого кода.

[Guid] - это точный эквивалент .NET Type.AssemblyQualifiedName. Как

System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5561934e089

С очевидным различием, что имя типа .NET легче читать человеком. Необходимо разрешить программе обнаруживать, какую DLL нужно загружать для использования типа. В случае .NET сборки (обычно) обнаруживаются путем перечисления GAC. Он основан на файлах.

Однако COM использует реестр. После того, что сборка, исходный код которой вы просматриваете, будет создан и зарегистрирован, вы можете найти [Guid] в реестре. Запустите regedit.exe и перейдите к HKLM\Software\Classes\CLSID\{guid}. Вы увидите значения регистрационного ключа, которые использует среда выполнения для загрузки CLR и сборки.

Ответ 3

Guid (глобально уникальный идентификатор) используется для идентификации вашего компонента внешним миром. Когда вы пишете проект, который будет использоваться как COM (Component Object Model), вам нужно будет дать уникальное имя. По этой причине вам нужно применить атрибут GUID.

Подробнее об этом вы можете прочитать здесь.

GUIDAttributeClass