다음을 통해 공유


CultureAndRegionInfoBuilder 클래스

이 문서에서는 이 API에 대한 참조 설명서에 대한 추가 설명서를 제공합니다.

참고 항목

CultureAndRegionInfoBuilder 클래스는 Windows 운영 체제에만 유용합니다. 생성된 .nlp 파일은 비 Windows 운영 체제에서 지원되지 않습니다. 또한 Windows에서도 생성된 .nlp 파일은 .NET Framework(또는 NLS 세계화 모드를 사용하는 경우 .NET Core)에서만 지원됩니다.

클래스는 CultureInfo 관련 언어, 하위 언어, 국가/지역, 달력 및 문화권 규칙과 같은 문화권별 정보를 보유합니다. 또한 이 클래스는 대/소문자, 날짜 및 숫자 서식 및 구문 분석, 문자열 비교와 TextInfo 같은 문화권별 작업에 필요한 , CompareInfoNumberFormatInfo및 클래스의 문화권별 인스턴스DateTimeFormatInfo를 제공합니다.

기본적으로 .NET은 CultureInfo 미리 정의된 문화권 집합을 나타내는 개체를 지원합니다. Windows 시스템에서 사용할 수 있는 이러한 문화권 목록은 Windows에서 지원하는 언어/지역 이름 목록에서 언어 태그 열을 참조하세요. 문화권 이름은 BCP 47에 정의된 표준을 따릅니다. 클래스 CultureAndRegionInfoBuilder 를 사용하면 완전히 새로운 사용자 지정 문화권을 만들거나 미리 정의된 문화권을 재정의할 수 있습니다. 사용자 지정 문화권이 설치되어 특정 컴퓨터에 등록되면 미리 정의된 CultureInfo 개체와 구별할 수 없게 되며 이러한 개체와 마찬가지로 인스턴스화하고 사용할 수 있습니다.

Important

CultureAndRegionInfoBuilder 클래스는 sysglobl.dll 라는 어셈블리에서 찾을 수 있습니다. 이 형식을 사용하는 코드를 성공적으로 컴파일하려면 sysglobl.dll 대한 참조를 추가해야 합니다.

사용자 지정 문화권은 해당 컴퓨터에 대한 관리 권한이 있는 사용자만 컴퓨터에 등록할 수 있습니다. 따라서 앱은 일반적으로 사용자 지정 문화권을 만들고 설치하지 않습니다. 대신 클래스를 CultureAndRegionInfoBuilder 사용하여 관리자가 사용자 지정 문화권을 만들고, 설치하고, 등록하는 데 사용할 수 있는 특수한 용도의 도구를 만들 수 있습니다. 사용자 지정 문화권이 컴퓨터에 등록되면 미리 정의된 문화권과 마찬가지로 앱의 클래스를 사용하여 CultureInfo 사용자 지정 문화권의 인스턴스를 만들 수 있습니다.

사용자 지정 문화권에 대해 생성된 날짜 및 시간 문자열을 구문 분석하는 경우 구문 분석 작업이 성공할 확률을 높이기 위해 메서드 대신 DateTime.Parse 또는 DateTime.TryParseExactDateTime.TryParse 메서드를 사용해야 DateTime.ParseExact 합니다. 사용자 지정 문화권의 날짜 및 시간 문자열은 복잡하므로 구문 분석하기가 어려울 수 있습니다. 및 TryParse 메서드는 Parse 여러 암시적 구문 분석 패턴으로 문자열을 구문 분석하려고 시도하며 모두 실패할 수 있습니다. TryParseExact 메서드를 명시적으로 성공할 수 있는 하나 이상의 정확한 구문 분석 패턴을 지정 애플리케이션에 필요한 반면, 합니다.

사용자 지정 문화권 정의 및 만들기

클래스를 CultureAndRegionInfoBuilder 사용하여 사용자 지정 문화권을 정의하고 이름을 지정합니다. 사용자 지정 문화권은 완전히 새로운 문화권, 기존 문화권(즉, 추가 문화권)을 기반으로 하는 새로운 문화권 또는 기존 .NET 문화권을 대체하는 문화권일 수 있습니다. 각각의 경우 기본 단계는 동일합니다.

  1. 생성자를 CultureAndRegionInfoBuilder 호출하여 개체를 인스턴스화합니다 CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) . 기존 문화권을 바꾸려면 해당 문화권의 이름과 CultureAndRegionModifiers.Replacement 열거형 값을 생성자에 전달합니다. 새 문화권 또는 추가 문화권을 만들려면 고유한 문화권 이름과 CultureAndRegionModifiers.NeutralCultureAndRegionModifiers.None 열거형 값을 전달합니다.

    참고 항목

    열거형 값을 사용하여 CultureAndRegionModifiers.Replacement 개체를 인스턴스화하는 CultureAndRegionInfoBuilder 경우 개체 CultureAndRegionInfoBuilder 의 속성은 바꿀 개체의 값 CultureInfo 으로 자동으로 채워집니다.

  2. 새 문화권 또는 추가 문화권을 만드는 경우:

  3. 필요에 따라 개체의 CultureAndRegionInfoBuilder 속성을 수정합니다.

  4. 사용자 지정 문화권을 별도의 루틴에 등록하려는 경우 메서드를 호출합니다 Save . 이렇게 하면 별도의 사용자 지정 문화권 설치 루틴에서 로드하고 등록할 수 있는 XML 파일이 생성됩니다.

사용자 지정 문화권 등록

문화권을 야기 하는 애플리케이션에서 분리 된 사용자 지정 문화권에 대 한 등록 애플리케이션을 개발 하는 경우, 호출 하는 CreateFromLdml 메서드를 사용자 지정 문화권의 정의가 포함 된 XML 파일을 로드 하 고는 를인스턴스화합니다CultureAndRegionInfoBuilder개체입니다. 등록을 처리하려면 메서드를 호출합니다 Register . 성공 하려면 등록을 위한 사용자 지정 문화권을 등록 하는 애플리케이션에서 실행 되어야 합니다 관리자 권한으로 대상 시스템 그렇지 않은 경우에 대 한 호출 Register throw는 UnauthorizedAccessException 예외입니다.

Warning

문화권 데이터는 시스템 간에 다를 수 있습니다. 클래스를 CultureAndRegionInfoBuilder 사용하여 여러 시스템에서 균일한 사용자 지정 문화권을 만들고 기존 CultureInfo 및 개체에서 데이터를 로드하고 RegionInfo 사용자 지정하여 사용자 지정 문화권을 만드는 경우 두 가지 유틸리티를 개발해야 합니다. 첫 번째는 사용자 지정 문화권을 만들고 XML 파일에 저장합니다. 두 번째 메서드를 CreateFromLdml 사용 하 여 XML 파일에서 사용자 지정 문화권을 로드 하 고 대상 컴퓨터에 등록 합니다.

등록 프로세스는 다음 작업을 수행합니다.

  • 개체에 정의된 CultureAndRegionInfoBuilder 정보를 포함하는 .nlp 파일을 만듭니다.
  • 대상 컴퓨터의 %windir%\Globalization 시스템 디렉터리에 .nlp 파일을 저장합니다. 이렇게 하면 사용자 지정 문화권의 설정이 세션 간에 유지됩니다. CultureAndRegionInfoBuilder(.nlp 파일이 시스템 디렉터리에 저장되므로 메서드에 관리 권한이 필요합니다.)
  • 다음에 새 사용자 지정 문화권을 만들라는 요청이 있을 때 내부 캐시 대신 %windir%\Globalization 시스템 디렉터리를 검색하도록 .NET을 준비합니다.

사용자 지정 문화권이 성공적으로 등록되면 .NET에서 미리 정의된 문화권과 구별할 수 없습니다. 사용자 지정 문화권은 메서드 호출이 CultureAndRegionInfoBuilder 로컬 컴퓨터에서 .nlp 파일을 제거할 때까지 사용할 수 있습니다.

사용자 지정 문화권 인스턴스화

다음 방법 중 하나로 사용자 지정 문화권의 인스턴스를 만들 수 있습니다.

또한 메서드에서 반환 CultureInfo.GetCultures 되는 개체의 CultureInfo 배열에는 사용자 지정 문화권이 포함됩니다.