2011-04-13 2 views
20

C# 유형의 GUID가 자동으로 생성됩니까? 예를 들어 IFoo (typeof(IFoo).GUID)의 인터페이스에 대한 GUID를 처음 프로그램을 실행할 때마다 프로그램을 실행할 때마다 동일한 GUID를 얻게됩니까?.NET에서 유형에 대한 GUID가 자동으로 생성됩니까?

내 컴퓨터에서 로컬로 테스트 한 결과 항상 동일하게 보이지만 컴퓨터간에 항상 동일한 의존성이 있는지는 잘 모르겠습니다.

+0

어쨌든 무엇을 위해? – BoltClock

+0

나는 그 GUID가 전혀 생성되지 않았다고 생각하지만 한 번 생성되었으므로 항상 동일합니다. – Rhapsody

답변

15

참조 : System.Type.GUID stability. 이 메서드의 현재 구현은 CLR 자체에서 구현되는 내부 호출에 의존합니다. Microsoft가 자동 생성 Guids (현재이 문제에 대해 Type.GUID 설명서가 자동 설치되지 않음)에 대한 계약을 명확히하지 않는 한, 관찰 된 동작에 의존하지 않을 것입니다. 일관성을 확인하려면 질문 유형을 GuidAttribute으로 명시 적으로 장식하는 것이 좋습니다.

+0

감사합니다. 나는 GUID를 명시 적으로 정의하는 것을 피하려고했지만 가장 안전한 경로가되는 것처럼 보입니다. – blachniet

+0

궁금하신 분은 Type.GUID가 (으)로 착신 전환되고있는 [CLR 코드] (https://github.com/dotnet/coreclr/blob/7f7d8276e65059a37001aaa5ce9af7e82249f4a0/src/vm/methodtable.cpp#L7377)입니다. . –

0

필자는 완벽하게 의존하지 않았기 때문에 구현이 미래에 변경 될 수도 있고 변경되지 않을 수도 있다고 말했습니다.

관련 문제