Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows 10更新后的.NET远程处理字符串比较行为_C#_Remoting - Fatal编程技术网

C# Windows 10更新后的.NET远程处理字符串比较行为

C# Windows 10更新后的.NET远程处理字符串比较行为,c#,remoting,C#,Remoting,我有一个.NET远程处理客户端/服务器应用程序,其中我的远程对象有一个返回字典的方法,如下所示: public Dictionary<string, string> Test() { Dictionary<string, string> d = new Dictionary<string, string>(StringComparer.CurrentCultureIgnoreCase); d.Add("name"

我有一个.NET远程处理客户端/服务器应用程序,其中我的远程对象有一个返回字典的方法,如下所示:

   public Dictionary<string, string> Test()
    {
        Dictionary<string, string> d = new Dictionary<string, string>(StringComparer.CurrentCultureIgnoreCase);

        d.Add("name", "test");

        return d;
    }
公共字典测试()
{
字典d=新字典(StringComparer.CurrentCultureInoRecase);
d、 添加(“名称”、“测试”);
返回d;
}
当此远程方法由运行Windows 10并带有更新1709(秋季创建者更新)的客户端计算机调用时,密钥查找不再不区分大小写,即ContainsKey(“Name”)返回false

在更新1709之前或更新1709被恢复之前,情况并非如此。此外,如果字符串比较器更改为StringComparer.OrdinalIgnoreCase(仅更改服务器端),ContainsKey(“名称”)将返回true


客户端和服务器都使用相同的区域和语言设置(英语)。此Windows更新中是否有更改导致此行为?

这可能适合您

public Dictionary<string, string> Test()
{
    Dictionary<string, string> d = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);

    d.Add("name", "test");

    return d;
}
公共字典测试()
{
字典d=新字典(StringComparer.InvariantCultureInogoreCase);
d、 添加(“名称”、“测试”);
返回d;
}

客户端和服务器使用的是什么区域/语言设置?@Matthew Watson都在使用en IE(英语爱尔兰)。我能想到的唯一一件可能与之有点关联的事情是在.Net 4.6中,
任务
的默认区域设置更改为调用线程的区域设置,但我认为这与此无关。OP显然已经了解如何解决这个问题,正如他们在问题中所述。他们要问的是,是什么改变了以前的工作代码,使其无法工作。