<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>
请参见
参考
其他资源
修订记录
Date |
修订记录 |
原因 |
---|---|---|
2010 年 5 月 |
请注意,<CompatSortNLSVersion> 开关取决于 sort00001000.dll。 |
内容 Bug 修复 |