添加服务引用(webservice),vs自动生成的代理类为什么前后不一致?

黑娃 2019-03-28 11:16:34
我有个工程,以前引用过一个webservice服务,vs的操作方式时,项目右键-添加服务引用,然后输入webservice的地址即可添加,vs会自动生成一个代理类方便调用webservice。

后来我再次添加同一个服务,发现vs生成的代理类和之前竟然不一样!确定是我的服务接口完全没有变,然后代理类会交换接口的参数顺序,以下是我原来生成的代理类
public bool upload(string xmlData, out string failReason) {
changde.WebService.uploadRequest inValue = new changde.WebService.uploadRequest();
inValue.Body = new changde.WebService.uploadRequestBody();
inValue.Body.xmlData = xmlData;
changde.WebService.uploadResponse retVal = ((changde.WebService.DataServiceSoap)(this)).upload(inValue);
failReason = retVal.Body.failReason;
return retVal.Body.uploadResult;
}

以下是我现在生成的代理类
public bool upload(out string failReason, string xmlData) {
return base.Channel.upload(out failReason, xmlData);
}


这个代理类是vs自动生成再一个叫Reference.cs的文件中,开头有说明如下:
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

可见运行时版本都是i一样的,我想知道是什么导致生成的代理类会有区别,vs版本吗
难道微软没有考虑到这样会给开发者带来麻烦么,别人引用了大量的接口,最后一变,多麻烦的
...全文
295 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
stherix 2019-03-28
  • 打赏
  • 举报
回复
理论上不会发生这种情况 可能是这个webservice的wsdl文件发生变化了
  • 打赏
  • 举报
回复
根服务器端的参数定义次序一致吗?
大鱼> 2019-03-28
  • 打赏
  • 举报
回复
用web api啊,不用那么麻烦了

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧