如何将对象添加到WSDL服务system.array

时间:2015-06-17 20:02:04

标签: c# arrays web-services wsdl

我目前正在使用具有保存发票的方法的WSDL。我已经能够修改现有发票,但还没有想出如何保存新发票。由于数组大小是不可变的,我无法将对象添加到检索的数组中。我应该如何保存新发票,有没有办法将它们添加到阵列中? WSDL没有另一种保存个人发票的方法。

Invoices.InvoiceOrder[] po = _service.GetInvoices(_params, invoiceReturnProperties, rowReturnProperties);

//test import of new po
Invoices.InvoiceOrder newInvoice = new Invoices.InvoiceOrder();

//specify individual properties that need to be set

newInvoice.OrderId = 28;
newInvoice.CustomerName = "James Bond";
newInvoice.CustomerId = 28;

po[po.Length] = newInvoice; //not sure how to accomplish this

//save invoices
_service.SaveInvoices(po);

1 个答案:

答案 0 :(得分:2)

为什么说数组是不可变的?第二行到最后一行是否会抛出错误?

如果它实际上是不可变的,您可以使用Array.Clone复制现有数组并传递它。或者,如果服务仅期望将新的/编辑的发票传递给SaveInvoices操作(这对我来说更有意义),您可以这样做:

//save invoices
_service.SaveInvoices(new [] {p});

了解Array.Clone方法: https://msdn.microsoft.com/en-us/library/system.array.clone.aspx