簡體   English   中英

如何使用反射從對象類型的列表中訪問值

[英]How to access value from a list from an object type using reflection

我有一個服務方法,它將返回一個對象類型。

var serviceResponse = InvokeServiceMethod(parameters);

我可以使用反射來訪問數據,例如:

serviceResponse.GetType().GetProperty("NumberOfRecords").GetValue(serviceResponse, null)

在響應中,我有一個列表,但是我無法訪問這些值。 它的拋出錯誤“索引超出了數組的范圍” 我能夠看到里面的數據。 以下是我正在嘗試做的事情。

PropertyInfo summary= serviceResponse.GetType().GetProperty("SummaryList");
PropertyInfo test = summary.PropertyType.GetGenericArguments()[0].GetProperty("Name");

感謝Dima的建議。 它起作用了。以下是我為解決此問題所做的工作。

dynamic collection = serviceResponse.GetType().GetProperty("SummaryList").GetValue(serviceResponse, null);
foreach (var item in collection)
{
    var value = item.Name;
}

反思:如何從 object 中獲取值作為列表<object><div id="text_translate"><p>使用反射,我需要一個接受通用對象列表並打印其值的 function</p><pre> List&lt;Gender&gt; genders = new List&lt;Gender&gt; { new Gender { Id: 1, Name: "Male" }, new Gender { Id: 2, Name: "Female" } } PrintListValues(genders, "Name"); // prints Male, Female</pre><p> PrintListValues 必須接受列表為 object。 並且該列表可以包含任何類型的 object。 只要通用 object 有屬性傳入,它應該打印列表中每個項目的值。</p><pre> public static void PrintValues(object listObject) { // code here }</pre><p> 不幸的是,這就是項目要求的方式。</p><p> 一直在為這個問題撓頭,無法弄清楚。 反思對我來說太難了。 如果有人可以給我提示,那就太好了!</p></div></object>

[英]Reflection: how to get values from object as List<object>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何使用反射從自定義類型的方法獲取返回值? 如何使用反射在運行時從類的對象獲取屬性值 使用反射從列表中檢索值 如何在運行時使用Reflection創建值類型或字符串類型對象 將動態類型添加到列表 <object> 使用反射 反思:如何從 object 中獲取值作為列表<object><div id="text_translate"><p>使用反射,我需要一個接受通用對象列表並打印其值的 function</p><pre> List&lt;Gender&gt; genders = new List&lt;Gender&gt; { new Gender { Id: 1, Name: "Male" }, new Gender { Id: 2, Name: "Female" } } PrintListValues(genders, "Name"); // prints Male, Female</pre><p> PrintListValues 必須接受列表為 object。 並且該列表可以包含任何類型的 object。 只要通用 object 有屬性傳入,它應該打印列表中每個項目的值。</p><pre> public static void PrintValues(object listObject) { // code here }</pre><p> 不幸的是,這就是項目要求的方式。</p><p> 一直在為這個問題撓頭,無法弄清楚。 反思對我來說太難了。 如果有人可以給我提示,那就太好了!</p></div></object> 沒有使用反射的實例化對象的GetProperties列表中的GetValue 如何確定對象的類型是否實現了IEnumerable <X> 其中X使用Reflection從Base派生 如何將 object 從反射轉換為 DbSet<type></type> 如何在C#中使用反射從類型和設置屬性值中按名稱獲取屬性
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM