在我的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);