如何填充 Web 服务所需的类



我需要调用一个接受类结构作为输入的Web服务。类本身由常规字段类型以及子类的一个或多个实例组成。我得到了填充类的示例代码,但带有静态数据。我需要在运行时使用来自用户输入的动态数据填充它,并且不确定用 1 组或多组数据填充子类(PaymentProposalDetail(的正确方法。

以下是作为示例提供的静态数据:

PaymentApproval pa = new PaymentApproval()
{
VendorId = "14771",
Company = "333-TTTT",
PaymentApprovalNumber = "12345678",
SubmissioNDate = DateTime.Today,
ValueDate = DateTime.Today.AddMonths(1),
TotalAmount = 200000.00,
PaymentInstructionId = "ABCDEFGH",
Currency = "USD"
Comment = ""
};
pa.Details = new PaymentProposalDetail[] {
new PaymentProposalDetail()
{
InvoiceNumber = "1234567",
PayAmount = 454880.46,
InvoiceCurrency = "USD"
},
new PaymentProposalDetail()
{
InvoiceNumber = "9876543",
PayAmount = 543340.67,
InvoiceCurrency = "USD"
}
};

类定义:

public partial class PaymentApproval : object, System.Runtime.Serialization.IExtensibleDataObject
{
private string BankIdField;
private string CommentField;
private string CompanyField;
private string CurrencyField;
private PaymentProposalDetail[] DetailsField;
private string PaymentApprovalNumberField;
private string PaymentInstructionIdField;
private System.DateTime SubmissioNDateField;
private decimal TotalAmountField;
private System.DateTime ValueDateField;
private string VendorIdField;
}
public partial class PaymentProposalDetail : object, System.Runtime.Serialization.IExtensibleDataObject
{
private string InvoiceCurrencyField;
private string InvoiceNumberField;
private decimal PayAmountField;
}

我想我需要在我的循环中构建一个 PaymentProposalDetail 对象数组,该对象从 UI 获取数据。所以对于我所做的每组数据

PaymentApproval pa;
/* populate regular fields in pa */
foreach (data UIdata in UIdataStruct)
{
PaymentProposalDetail pd = new PaymentProposalDetail();
pd.InvoiceNumber = UIdata.invoiceNumber;
pd.PayAmount = UIdata.payAmount;
pd.InvoiceCurrenct = UIdata.invoiceCurrency;
}

但是,我如何将 pd 添加到 pa。详?

将每个PaymentProposalDetail项添加到集合中,并将其分配给PaymentApproval

PaymentApproval pa;
/* populate regular fields in pa */
List<PaymentProposalDetail> details = new List<PaymentProposalDetail>();
foreach (data UIdata in UIdataStruct)
{
PaymentProposalDetail pd = new PaymentProposalDetail();
pd.InvoiceNumber = UIdata.invoiceNumber;
pd.PayAmount = UIdata.payAmount;
pd.InvoiceCurrenct = UIdata.invoiceCurrency;
details.Add(pd);
}
pa.Details = details.ToArray(); 

最新更新