<CompatSortNLSVersion> 요소

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

<configuration>
  <runtime>
    <CompatSortNLSVersion>

구문

<CompatSortNLSVersion
   enabled="4096"/>  

특성 및 요소

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

특성

특성 설명
enabled 필수 특성입니다.

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

enabled 특성

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

자식 요소

없음

부모 요소

요소 Description
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) 메서드를 호출하여 두 개체를 비교합니다.

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);
   }
}
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

.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>  

참고 항목