C# DLL';.NET framework升级(.NET 4.0到.NET 4.5.1)后的冲突

C# DLL';.NET framework升级(.NET 4.0到.NET 4.5.1)后的冲突,c#,wcf,json.net,C#,Wcf,Json.net,.NET framework的测试依据: .NET framework 4.5.1 Visual Studio的测试依据: VS ultimate 2013 说明: 我创建了一个WCF服务,它返回一个哈希表作为输出,当我在类路径库项目中添加服务引用时,我获得了ArrayOfKeyValueOfAnyTypeKeyValueOfAnyTypeOfAnyType作为哈希表输出结果 我的类路径库项目引用了两个DLL:DocumentFormat.OpenXml和Newtonsoft.Json。当我删除

.NET framework的测试依据:

.NET framework 4.5.1

Visual Studio的测试依据:

VS ultimate 2013

说明:

我创建了一个WCF服务,它返回一个哈希表作为输出,当我在类路径库项目中添加服务引用时,我获得了ArrayOfKeyValueOfAnyTypeKeyValueOfAnyTypeOfAnyType作为哈希表输出结果

我的类路径库项目引用了两个DLL:DocumentFormat.OpenXml和Newtonsoft.Json。当我删除这些DLL并再次更新WCF服务时,冲突得到解决,我获得了一个哈希表作为输出结果


如何获取哈希表作为输出结果,而不是ArrayOfKeyValueOfAnyTypeKeyValueOfAnyTypeOfAnyType?

您会看到错误,因为您是“在引用的程序集中重用类型”。生成器从Newtosoft.Json dll或document.openxml dll中选择类型。并将using添加到这些DLL中的命名空间中。通过在指定的引用程序集中选择重用类型并包括所需的类型,可以排除dll。或者在数据类型下指定字典集合类型和集合类型。

如何获取哈希表作为输出结果,而不是ArrayOfKeyValueOfAnyTypeKeyValueOfAnyTypeOfAnyType?您如何公开和使用该服务?任何代码?Khmm,如果您的问题是“如何获取哈希表作为输出结果,而不是ArrayOfKeyValueofAnyTypeKeyValueofAnyTypeAnyType”,则应相应地对其命名。如果您的4.0项目生成了另一种类型,请询问原因以及可以做什么(在询问之前请先阅读)。当我将类路径库项目升级到.NET 4.5.1时,会出现冲突。删除DocumentFormat.OpenXml和Newtonsoft.Json DLL后,我获得了哈希表作为输出结果。我取消选中了“在引用的程序集中重用类型”同样的问题也会出现。例如,您可以创建一个示例作为WCF项目,其中包含一个返回空哈希表的服务,并尝试通过控制台应用程序调用它,但在您的客户端中,您应该包含Newtonsoft.Json或/和DocumentFormat.OpenXml,这样您将获得ArrayOfKeyValueOfAnyTypeKeyValueOfAnyTypeAnyType当我从服务引用选项中排除DocumentFormat.OpenXml和Newtonsoft.Json DLL时,问题得到了解决。