c#devkitを使用して、請求書のItemID行にアクセスするにはどうすればよいですか?
私の応答xmlには、次のようなセクションがあります。
<Line>
<Desc>TestItem</Desc>
<Amount>66.00</Amount>
<Taxable>false</Taxable>
<ItemId idDomain="QBO">3</ItemId>
<UnitPrice>33</UnitPrice>
<Qty>2</Qty>
<ServiceDate>2013-01-07-08:00</ServiceDate>
</Line>
そして、次のようなdevkitを使用して、これからデータをプルできます。
List<Intuit.Ipp.Data.Qbo.Invoice> customerInvoicesWithinDateRange = invoice.ExecuteQuery<Intuit.Ipp.Data.Qbo.Invoice>(context).ToList<Intuit.Ipp.Data.Qbo.Invoice>();
foreach (var invoiceFound in customerInvoicesWithinDateRange)
{
foreach (var line in invoiceFound.Line)
{
things += line.Desc + " <br> ";
things += line.Taxable.ToString() + " <br> ";
things += line.ServiceDate.ToShortDateString() + " <br> ";
things += line.Amount.ToString() + "<br>";
}
}
ただし、オブジェクトにはline.ItemId、line.Qtyもline.UnitPriceもありません。
line.Itemsオブジェクトを設定すると、ItemsChoiceType2オブジェクトとして表示されることはわかっていますが、line.Itemsオブジェクトにアクセスしようとすると、「NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。
そのとらえどころのない「3」を取得するために私はどのようなステップを逃していますか?
ありがとう
編集:@Peter私がするとき:
List<Intuit.Ipp.Data.Qbo.Invoice> customerInvoicesWithinDateRange = invoice.ExecuteQuery<Intuit.Ipp.Data.Qbo.Invoice>(context).ToList<Intuit.Ipp.Data.Qbo.Invoice>();
var quantity = customerInvoicesWithinDateRange[0].Line[0].Items[Array.IndexOf(customerInvoicesWithinDateRange[0].Line[0].ItemsElementName, Intuit.Ipp.Data.Qbo.ItemsChoiceType2.Qty)];
「System.ArgumentNullException:値をnullにすることはできません」というメッセージが表示されます。2行目。customerInvoicesWithinDateRange [0] .Line[0].ItemsElementNameはnullだと思います。foreachループでもnullでした。
編集編集:
nm、私は実際に私が推測する行がないクエリに請求書を持っていました。それを次のようにラップすると、最終的なハードルが解決されました。
if (customerInvoicesWithinDateRange[0].Line[0].Items != null)
よろしくお願いします。