加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将服务引用添加到引用了JSON.NET库的项目时出现奇怪的问题

发布时间:2020-12-16 18:41:36 所属栏目:百科 来源:网络整理
导读:该项目是您的标准普通 ASP.NET MVC 3应用程序,它与内部WCF服务进行通信.我们的ASP.NET MVC应用程序引用了一些外部库,包括流行的JSON.NET库. 仅当JSON.NET库是项目中的引用时才会出现此问题.我尝试使用WebForms和Windows Forms项目重新创建此问题,同样的事情
该项目是您的标准普通 ASP.NET MVC 3应用程序,它与内部WCF服务进行通信.我们的ASP.NET MVC应用程序引用了一些外部库,包括流行的JSON.NET库.

仅当JSON.NET库是项目中的引用时才会出现此问题.我尝试使用WebForms和Windows Forms项目重新创建此问题,同样的事情发生了.

在我们的WCF服务中添加服务引用时,JSON.NET是我们项目中的引用,它构建服务引用,如下所示:

使用项目中引用的JSON.NET – 注意请求/响应类和奇怪的属性,如Id1和IdSpecified

但删除对JSON.NET的引用并更新服务引用按照我们想要的方式构建它,如下所示:

没有项目中引用的JSON.NET

世界上会发生什么? WCF项目中没有引用JSON.NET,所以我非常怀疑那里可能存在某种混淆.

一些可能有用的信息:

>尝试检查“添加服务引用”对话框中的各种选项,例如“重用引用程序集中的类型” – 但同样的事情发生了
> Visual Studio 2010
> WCF服务使用Entity Framework进行数据访问

解决方法

添加服务引用时,默认情况下,WCF将重用程序集中与将以其他方式生成的类相匹配的类.

发生这种情况的原因是,例如,您可能同时开发服务和客户端,并且您可能希望拥有一个包含两个项目中引用的所有类的类库.这也确保使用.NET默认类型(如数组,列表,DateTime).

您可以更改此默认行为,如下所示:

>选择“添加服务参考”后单击“高级”按钮
>选择“在指定的引用程序集中重用类型”
>检查除了您不想要的组件之外的所有组件
使用

请注意,如果不检查系统程序集,则会在代理文件中为每种.NET类型(如数组,列表)生成一个新类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读