私は正しい領域を見ていましたが、焦点が合っていませんでした。PaymentDetails オブジェクトには、項目が移動する PaymentDetailsItem 配列が含まれています。コードを整理する必要がありますが、他の誰かがそれを必要とする場合は、一般的なアイデアを提供する必要があります。
PaymentDetailsType[] pmtDetails = new PaymentDetailsType[1];
pmtDetails[0] = new PaymentDetailsType();
var pmtIndex = 0;
PaymentDetailsItemType[] items = new PaymentDetailsItemType[cartItems.Count];
foreach (var item in cartItems)
{
var i = new PaymentDetailsItemType()
{
Name = item.productName,
Number = item.productID.ToString(),
Quantity = item.quantity.ToString(),
Amount = new BasicAmountType(){ currencyID = CurrencyCodeType.GBP, Value = item.productPrice.ToString() }
};
items[pmtIndex] = i;
pmtIndex++;
}
//reqDetails.p
//reqDetails.PaymentDetails = pmtDetails;
//hOrderTotal.Value
//
pmtDetails[0].PaymentDetailsItem = items;
pmtDetails[0].OrderTotal = new BasicAmountType() { currencyID = CurrencyCodeType.GBP, Value = HttpContext.Current.Session["_OrderTotalLessShippingAmount"].ToString() };
reqDetails.PaymentDetails = pmtDetails;