前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >来看下,C# WebService WSDL自动生成代码,数组参数的BUG。。。ArrayOfString

来看下,C# WebService WSDL自动生成代码,数组参数的BUG。。。ArrayOfString

作者头像
KurtNiu
发布2019-12-20 15:26:23
1.2K0
发布2019-12-20 15:26:23
举报

ArrayOfString ArrayOfString ArrayOfString

解决C#客户端 ArrayOfString 参数问题。(希望搜索引擎能搜到,帮你解决神奇的ArrayOfString)


ASP.NET 服务端添加 asmx WebService文件,并添加如下方法。注意只添加这个如下方法:

参数为字符串数组:

    [WebMethod]
        public string HelloWorld(string[] inputs)
        {
            return "Hello World";
        }

其他项目添加服务器引用这个WebService (其实是wsdl.exe 程序根据 WebService 声明的WDSL文件自动生成代码。) 生成如下代码

public string HelloWorld(ConsoleApp2.ServiceReference1.ArrayOfString inputs) 

注意:参数string[] 变为ArrayOfString 对象。。。

神奇的是,用了这么多年的WebService 都没发现有这问题。。

    [WebMethod]
        public string HelloWorld(string[] inputs)
        {
            return "Hello World";
        }
        
    //添加下边的这个方法后,重新引用,上边的string[] 参数就不会变成ArrayOfString对象。。。
    [WebMethod]
        public DataTable AddTable()
        {
            return null;
        }

对比两个WDSL,只要添加DataTable,WDSL里的声明结构就不一样了。。。

            //没有添加Datatable 的WebService会导致声明的string[]参数变为ArrayOfString 对象
            ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();
            client.HelloWorld(new ServiceReference1.ArrayOfString());

            //添加Datatable声明的WebService就是正常的
            ServiceReference2.WebService2SoapClient client2 = new ServiceReference2.WebService2SoapClient();
            string[] input = new string[0];
            client2.HelloWorld(input);

DEMO:

https://github.com/zifeiniu/WebserviceArrayOfString.git

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决C#客户端 ArrayOfString 参数问题。(希望搜索引擎能搜到,帮你解决神奇的ArrayOfString)
  • ASP.NET 服务端添加 asmx WebService文件,并添加如下方法。注意只添加这个如下方法:
  • 注意:参数string[] 变为ArrayOfString 对象。。。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档