<CompatSortNLSVersion> 元素

指定執行階段在執行字串比較時,應使用舊版排序次序。

<configuration>
  <runtime>
    <CompatSortNLSVersion>

Syntax

<CompatSortNLSVersion
   enabled="4096"/>  

屬性和項目

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
enabled 必要屬性。

指定要使用其排序次序的地區設定 ID。

啟用屬性

描述
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>  

另請參閱