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