该项目是与内部 WCF 服务通信的标准普通ASP.NET MVC 3 应用程序。我们的 ASP.NET MVC 应用程序引用了一些外部库,包括流行的 JSON.NET 库。
仅当 JSON.NET 库是项目中的引用时,才会出现此问题。我尝试使用 WebForms 和Windows Forms项目重新创建此问题,并且发生了同样的事情。
当向我们的 WCF 服务添加服务引用时,JSON.NET 是我们项目中的引用,它会像这样构建服务引用:
在项目中引用 JSON.NET - 注意请求/响应类和奇怪的属性,如 Id1 和 IdSpecified
但是删除对 JSON.NET 的引用并更新服务引用会按照我们想要的方式构建它,如下所示:
项目中没有引用 JSON.NET
...
到底是什么原因造成的?WCF 项目中没有引用 JSON.NET,所以我非常怀疑那里可能存在某种混淆。
一些可能有帮助的信息:
- 尝试检查“添加服务引用”对话框中的各种选项,例如“在引用的程序集中重用类型” - 但同样的事情发生了
- 视觉工作室 2010
- WCF 服务使用实体框架进行数据访问