2011-04-21 5 views
1

응용 프로그램에 대한 통화 유형 시드 데이터를 생성하고 System.Globalization의 CultureInfo 컬렉션을 반복합니다. 카리브해가 올라오고 (CB로 MSDN에 열거 됨) TwoLetterISORegionName에 029의 3 문자 값이 올 때까지 필자의 삽입 문에 잘림 오류가 계속 발생했습니다. 나는 심각한 WTF 순간을 보냈다.RegionInfo.TwoLetterISORegionName이 카리브 해에 대해 3자를 반환하는 이유는 무엇입니까?

왜 이런 일이 발생하는지 알고 있습니까?

재현하려면

카리브해의 RegionInfo 개체를 인스턴스화.

RegionInfo region = new RegionInfo(9225); 

TwoLetterISORegionName 속성에 액세스하십시오. 값은 CB 여야합니다. 실제 값은 026입니다.

+0

테스트 가능한 코드를 추가하십시오. –

답변

0

ISO Website을 기반으로 한 ISO-3166 2 문자 ISO 국가 코드가없는 것처럼 보입니다. Wikipedia ISO 3166-1 page도 마찬가지입니다.

MSDN에서 Carribean을 (를) 나열한 것은 매우 흥미 롭습니다. 아마도 RegionInfo가 국가뿐만 아니라 지리적 영역에도 적용되기 때문일 수도 있지만 그저 추측 일뿐입니다.

+1

프레임 워크 문제보다는 문서화 문제 일 가능성이 높습니다. 꿰매다. 나는 내 범인이 진짜 프레임 워크 버그를 찾는 미덕으로 막 올라 갔다고 생각했다. –

+0

나는 당신이 당신의 가정에 틀렸다는 것을 확신하지 못합니다. 동일한 구조로 지역 및 국가를 포괄하고이를 위해 몇 가지 일반적인 방법/속성을 제공하고 일부 "갈등"을 초래하는 것은 잘못된 것일 수 있습니다. – jCoder

+1

Microsoft에서 문서화 오류임을 확인했습니다. 그들은 캐리비안 ISO가 국제 표준에 따라 029로 반환 될 것이라는 사실을 반영하여 지식 기반이 업데이트 될 것이라고 확신했습니다. –