CurrentCulture 속성 사용
업데이트: 2007년 11월
CurrentCulture 속성은 스레드별로 현재 문화권 정보를 나타냅니다. 이 정보는 날짜, 시간, 통화 및 숫자의 기본 형식, 텍스트 정렬 순서, 문자열 비교 및 대/소문자 구분 등을 결정합니다. 이 속성의 설정은 언어 설정이 아니며, 지리적 지역의 표준 설정에 관련된 데이터만 정의합니다. 따라서 응용 프로그램에서는 CurrentCulture를 특정 문화권이나 InvariantCulture로만 지정할 수 있습니다. 응용 프로그램에서는 CurrentThread 속성을 사용하여 CurrentCulture를 설정할 수 있습니다.
참고: |
---|
CurrentThread의 문화권을 변경하려면 ControlThread가 설정된 SecurityPermission 개체가 필요합니다. 스레드와 관련된 보안 상태 때문에 스레드를 조작하는 것은 위험합니다. 따라서 이 사용 권한은 신뢰할 수 있는 코드에 필요할 때만 부여해야 합니다. 부분 신뢰 코드에서는 스레드의 문화권을 변경할 수 없습니다. |
명시적으로 CurrentCulture 속성 설정
응용 프로그램에서 CurrentCulture 속성을 명시적으로 설정할 수 있습니다. 다음 코드 예제에서는 이 속성을 "de-DE"로 지정되는 독일어(독일) 문화권으로 설정합니다.
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE")
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
응용 프로그램에서는 특정 문화권을 사용하여 CurrentCulture 속성을 초기화해야 합니다. 이 속성에는 "en-US"으로 지정되는 영어(미국)과 같이 언어와 국가가 모두 관련된 문화권을 사용해야 합니다. 한 언어가 여러 국가나 지역에서 사용되는 경우가 있으므로 사용할 형식 지정 규칙을 결정하려면 국가별 정보가 필요합니다. 예를 들어 응용 프로그램에서 중립 영어에 대한 "en" 문화권을 지정하면 날짜 또는 통화 형식 설정을 한 가지로 결정할 수 없습니다. 날짜 형식이 미국식일 수도 있고 영국식일 수도 있습니다. 통화 형식은 뉴질랜드 형식일 수도 있고 캐나다 형식일 수도 있습니다. 응용 프로그램에서 중립 문화권을 지정하여 CurrentCulture 속성을 설정하려고 하면 예외가 throw됩니다.
중립 문화권에만 액세스할 수 있는 경우 응용 프로그램에서 CreateSpecificCulture 메서드를 사용하여 CurrentCulture 속성에 사용되는 형식으로 CultureInfo 개체를 만들 수 있습니다. 이 메서드는 중립 문화권을 관련된 기본 특정 문화권에 매핑한 다음 해당 특정 문화권을 나타내는 CultureInfo 개체를 만듭니다. 다음 코드 예제에서는 CreateSpecificCulture 메서드를 사용하여 독일어 중립 문화권("de")을 "de-DE"로 지정되는 특정 독일어(독일) 문화권에 매핑합니다. 그런 다음 "de-DE"에 대한 CultureInfo 개체를 만들고 이 개체를 사용하여 CurrentCulture 속성 값을 초기화합니다.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
참고: |
---|
이 메서드는 선택 사항입니다. 제공되는 매핑이 응용 프로그램에 적합하지 않은 경우 응용 프로그램에서 자체 매핑을 사용할 수 있습니다. |
.aspx 페이지에서 명시적으로 CurrentCulture 속성 설정
또한 응용 프로그램에서 CreateSpecificCulture 메서드를 사용하면 웹 브라우저의 현재 언어를 사용하여 .aspx 페이지의 CurrentCulture 속성을 초기화할 수 있습니다. 다음 코드 예제에서 UserLanguages 속성은 웹 브라우저의 현재 언어를 문자열로 검색합니다. CreateSpecificCulture 메서드는 이 문자열을 구문 분석하여 CurrentCulture 속성 값을 초기화하는 데 사용할 수 있는 형식의 CultureInfo 개체를 반환합니다.
' Sets the CurrentCulture property to the culture associated with the Web
' browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0])
// Sets the CurrentCulture property to the culture associated with the Web
// browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
ASP.NET 응용 프로그램에서 리소스를 검색하고 사용하는 방법에 대한 자세한 내용은 ASP.NET 응용 프로그램의 리소스를 참조하십시오.
암시적으로 CurrentCulture 속성 설정
Windows 운영 체제의 GetUserDefaultLCID 함수는 CurrentCulture 속성을 설정합니다. 사용자는 제어판의 국가 및 언어 옵션을 통해 사용자 문화권을 변경하거나 통화, 숫자, 날짜 및 시간 형식과 같은 사용자 로캘 관련 설정을 변경하여 이 속성 설정을 변경할 수 있습니다.
응용 프로그램에서 지정된 문화권의 통화, 숫자, 날짜 및 시간에 대해 .NET Framework에서 제공한 기본 형식을 사용하려면 응용 프로그램에서 사용자 로캘 기본값을 재정의합니다. 응용 프로그램에서 useUserOverride 매개 변수를 받는 생성자 오버로드를 사용하여 CultureInfo 개체를 만들고 이 매개 변수를 false로 설정합니다. 이 방법을 사용하면 사용자 운영 체제의 기본 설정이 .NET Framework 기본 설정으로 재정의됩니다. 유로를 사용하는 EU(유럽 연합) 회원국의 통화 형식을 지정할 때는 올바른 통화 기호가 사용되도록 응용 프로그램에서 useUserOverride 매개 변수를 false로 설정하는 것이 좋습니다. 자세한 내용은 특정 문화권의 숫자 데이터 형식 지정 항목의 "유럽 국가의 통화 형식 지정" 하위 항목을 참조하십시오.