Согласуются ли автоматически сгенерированные GUID для типов в .NET? - PullRequest
20 голосов
/ 13 апреля 2011

Соответствуют ли автоматически сгенерированные GUID для типов C #? Например, если я получу GUID для моего интерфейса, IFoo (typeof(IFoo).GUID), при первом запуске программы я получу один и тот же GUID при каждом запуске программы?

Я проверил это локально на своей машине, и оно, кажется, всегда одинаково, но я не уверен, могу ли я полагаться, что оно всегда одинаково на разных машинах.

Ответы [ 2 ]

15 голосов
/ 13 апреля 2011

См .: System.Type.GUID стабильности .Похоже, что текущая реализация метода полагается на внутренний вызов, который реализуется самим CLR.Если Microsoft не прояснит контракты для автоматически сгенерированных руководств (документация Type.GUID в настоящее время не обсуждает эту проблему), я бы не стал полагаться на наблюдаемое поведение.Чтобы быть уверенным в согласованности, я рекомендую явно декорировать данные типы с помощью GuidAttribute.

0 голосов
/ 13 апреля 2011

Это не задокументировано, поэтому я бы не стал полностью полагаться на них, сказал, что реализация может измениться или не измениться в будущем.

...