Why is GUID attribute needed in the first place?

.net, attributes, com, guid

Solution

If the compiler handled this automatically, you'd end up with one of two situations.

A new GUID every time you compiled - since GUIDs are supposed to be published, this would fail.

Collisions - if the GUID was the same every time, based on (say) a Hash of the name, multiple projects would end up using the same GUID for different purposes.

The existing approach - an explicit GUID gives developers the power to control these as required.

You only actually need to add a GUID attribute in limited cases - the primary one being for COM interop, if you're using .NET to write a COM object for use by another system. Depending on what kind of project you have, this might be an everyday event - or an annual one.

Problem

What is the necessity for the GUID attribute? why don't just let the compiler handle this automatically?!

Original source

Related problems