在我的C#代码中添加wsdl后,我从引用中获取方法。

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("Service1", RequestNamespace="http://xxx.yyy/", ResponseNamespace="http://xxx.yyy/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("Service1Return")]
        public Servic1Output[] Service1([System.Xml.Serialization.XmlElementAttribute("Servicelist")] Service1Input[] Service1List) {
            object[] results = this.Invoke("Service1", new object[] {
                        Service1List});
            return ((Service1Output[])(results[0]));
            }


我尝试通过

webreference.Service1Input input = new Service1Input();
webreference.Service1Output output = new Service1Output();

input.ACTION = "First Text";
input.ACTION2 = "Second Text";

List<webreference.Service1Input> input2;
input2.Add(input);

List<webreference.Service1Output> output2;

webreference.test service = new test();
output = service.Service1(input);


但结果是无效的催款。在

output = service.Service1(input);


我怎么能这样的方法。

最佳答案

您需要将Service1Input对象的数组传递给Service1(Service1Input[])方法,而不是单个实例。

webreference.Service1Input input = new Service1Input();
webreference.Service1Output output = new Service1Output();

input.ACTION = "First Text";
input.ACTION2 = "Second Text";

List<webreference.Service1Input> input2;
input2.Add(input);

List<webreference.Service1Output> output2;
Service1Input[] inputArray = input2.ToArray();

webreference.test service = new test();
output = service.Service1(inputArray);

10-05 20:38
查看更多