다음을 통해 공유


<CompatSortNLSVersion> 요소

업데이트: 2010년 5월

문자열 비교를 수행할 때 런타임에서 레거시 정렬 순서를 사용하도록 지정합니다.

<CompatSortNLSVersion  
   enabled="4096"/

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성

설명

enabled

필수 특성입니다.

정렬 순서를 사용할 로캘 ID를 지정합니다.

enabled 특성

설명

4096

대체 정렬 순서를 나타내는 로캘 ID입니다. 이 사례에서 4096은 .NET Framework 3.5 및 이전 버전의 정렬 순서를 나타냅니다.

자식 요소

없음

부모 요소

요소

설명

configuration

공용 언어 런타임 및 .NET Framework 응용 프로그램에서 사용하는 모든 구성 파일의 루트 요소입니다.

runtime

런타임 초기화 옵션에 대한 정보를 포함합니다.

설명

.NET Framework 4의 System.Globalization.CompareInfo 클래스가 수행하는 문자열 비교, 정렬 및 대소문자 구분 작업은 Unicode 5.1 표준을 준수하므로 String.Compare(String, String), String.LastIndexOf(String)와 같은 문자열 비교 메서드의 결과는 이전 버전의 .NET Framework와 다를 수 있습니다. 응용 프로그램이 레거시 동작에 의존하는 경우 응용 프로그램의 구성 파일에 <CompatSortNLSVersion>을 추가하여 .NET Framework 3.5 및 이전 버전에 사용된 문자열 비교 및 정렬 규칙을 복원할 수 있습니다.

중요중요

레거시 문자열 비교 복원 및 정렬 규칙을 실행하려면 로컬 시스템에서 sort00001000.dll 동적 링크 라이브러리를 사용할 수 있어야 합니다.

응용 프로그램 도메인을 만들 때 "NetFx40_Legacy20SortingBehavior" 문자열을 SetCompatibilitySwitches 메서드로 전달하여 특정 응용 프로그램 도메인에 레거시 문자열 정렬과 비교 규칙을 사용할 수도 있습니다.

예제

다음 예제에서는 현재 문화권의 규약을 사용하여 두 가지 String 개체를 인스턴스화하고 String.Compare(String, String, StringComparison) 메서드를 호출하여 두 개체를 비교합니다.

Enum StringComparisonResult As Integer
   precedes = -1
   equals = 0
   follows = 1      
End Enum

Module Example
   Public Sub Main()
      Dim str1 As String = ChrW(&h219) + ChrW(&h21B) + "a"
      Dim str2 As String = "a"

      Console.WriteLine("{0} {1} {2} in the sort order.", _
                        str1, _ 
                        CType(String.Compare(str1, str2, StringComparison.CurrentCulture), StringComparisonResult), _ 
                        str2)       
   End Sub
End Module
using System;

enum StringComparisonResult
{
    precedes = -1,
    equals = 0,
    follows = 1,
};

public class Example
{
   public static void Main()
   {
      string str1 = new string( new char[] {'\u0219', '\u021B', 'a' });
      string str2 = "a";

      Console.WriteLine("{0} {1} {2} in the sort order.", 
                        str1, 
                        (StringComparisonResult) String.Compare(str1, str2, StringComparison.CurrentCulture),  
                        str2);       
   }
}

.NET Framework 4에서 예제를 실행하면 다음 출력이 표시됩니다.

sta follows a in the sort order.

이는 .NET Framework 3.5에서 예제를 실행할 때 표시되는 출력과 완전히 다릅니다.

sta equals a in the sort order.

그러나 다음 구성 파일을 예제 디렉터리에 추가한 다음 .NET Framework 4에서 예제를 실행하는 경우 출력은 .NET Framework 3.5에서 실행할 때 예제가 생성한 출력과 동일합니다.

<?xml version ="1.0"?>
<configuration>
   <runtime>
      <CompatSortNLSVersion enabled="4096"/>
   </runtime>
</configuration>

참고 항목

참조

런타임 설정 스키마

기타 리소스

.NET Framework의 구성 파일 스키마

변경 기록

날짜

변경 내용

이유

2010년 5월

<CompatSortNLSVersion> 스위치는 sort00001000.dll에 따라 달라집니다.

콘텐츠 버그 수정