<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 的配置文件架构

修订记录

Date

修订记录

原因

2010 年 5 月

请注意,<CompatSortNLSVersion> 开关取决于 sort00001000.dll。

内容 Bug 修复