문자열 비교를 수행할 때 런타임에서 레거시 정렬 순서를 사용하도록 지정합니다.
<구성>
<런타임>
<CompatSortNLSVersion>
문법
<CompatSortNLSVersion
enabled="4096"/>
특성 및 요소
다음의 섹션은 특성, 자식 요소 및 부모 요소에 대해 설명합니다.
Attributes
| 특성 | Description |
|---|---|
enabled |
필수 특성입니다. 정렬 순서를 사용할 로캘 ID를 지정합니다. |
enabled 특성
| 가치 | Description |
|---|---|
| 4096 | 대체 정렬 순서를 나타내는 로캘 ID입니다. 이 경우 4096은 .NET Framework 3.5 이전 버전의 정렬 순서를 나타냅니다. |
자식 요소
없음.
부모 요소
| 요소 | Description |
|---|---|
configuration |
공용 언어 런타임 및 .NET Framework 애플리케이션에서 사용하는 모든 구성 파일의 루트 요소입니다. |
runtime |
런타임 초기화 옵션에 대한 정보를 포함합니다. |
비고
.NET Framework 4의 클래스에서 수행하는 System.Globalization.CompareInfo 문자열 비교, 정렬 및 대/소문자 구분 작업은 유니코드 5.1 표준을 따르기 때문에 이전 버전의 .NET Framework와 String.LastIndexOf(String) 같은 String.Compare(String, String) 문자열 비교 메서드의 결과는 다를 수 있습니다. 애플리케이션이 레거시 동작에 의존하는 경우 애플리케이션의 구성 파일에 요소를 포함하여 <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>
참고하십시오
.NET