我通過各種藏品循環,如果特定錯誤條件滿足,那麼我需要完整的對象圖,即這指數有問題。獲取完整的對象圖形字符串C#
示例代碼:
foreach (var sale in allSales) {
foreach (var discount in sale.orders.detail.discounts) {
if (errorConditionMet) {
// print full object graph. For example, perhaps it's the second Sale (index one), but first discount object (index zero):
// We have "discount" object, but want to print:
// allSales[1].sale.orders.detail.discounts[0]
}
這可能只是保持計數器(而且可能是更好的性能):
string.Format("allSales[{0}].sale.orders.detail.discounts[{1}]", saleCount, discountCount);
// prints: allSales[1].sale.orders.detail.discounts[0]
但我不知道這是否可能用C#反射?我需要在這多個類,所以這將是偉大的一個對象傳遞給方法,並返回對象圖,完全動態:
var resultOne = GetViaReflection(discount);
// returns: allSales[1].sale.orders.detail.discounts[0]
var resultTwo = GetViaReflection(currentAnimal);
// returns: animals[3].animal.types[2]
'foreach'隱藏一個枚舉,而[_「一個指數的概念是陌生的枚舉的概念」 _(HTTP: //stackoverflow.com/questions/43021/how-do-you-get-the-index-當前迭代的一個foreach循環),所以我猜你沒有運氣。 – CodeCaster
對象沒有索引...(或者它們存儲在其中的父項或數組,IEnumerable沒有搜索的概念)。所以不太清楚你希望如何使用反射來找到不存在的東西。 –
'allSales'和'sale.orders.detail.discounts'有什麼類型? –