I'm trying to figure out why this attribute was added to a class. Google is only turning up COM related material when I search for it; but the application doesn't do anything via COM.
The checkin comment doesn't provide any enlightenment (it referred to the other, seemingly non-related changes made at the same time); nor did reading my email traffic for several days on either side of the change.
A type in .NET always has a Guid whether you use the attribute or not. Available through the Type.GUID property. The CLR auto-generates one from the type definition, ensuring that identical types have identical Guids regardless on what machine it gets generated. Note that this is very different behavior from the usual way a Guid is generated.
You only use the [Guid] attribute if you want to override the auto-generated guid. Which is only useful in COM interop scenarios to get a declaration to match an existing COM interface or coclass. It should always be near a [ComVisible] or [ComImport] attribute.
The Guid attribute was introduced for COM interop - but there's nothing preventing you (or any other third party) from repurposing it for other uses.
Attributes, generally, provide additional information ("metadata") that can be used by other code however suits.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With