簡體   English   中英

如何遍歷PCL項目中對象的所有屬性(包括子/子屬性)?

[英]How to iterate through all properties (sub/child properties included) of an object in a PCL project?

我想創建一個方法,該方法將接受“從Object數據類型繼承的任何類型”(通用)作為參數,然后遍歷其所有屬性。

我嘗試了這個:

foreach (var prop in obj.GetType().GetProperties())
{
    Console.WriteLine("{0} = {1}", prop.Name, prop.GetValue(obj, null));
}

但是,PCL項目中不存在GetProperties()方法。

在大多數PCL配置文件中,至少是基於.NET 4.5的配置文件中,應使用TypeInfo而不是Type來獲取類型信息。

基本上,您可以將obj.GetType().GetProperties()替換為

obj.GetType().GetTypeInfo().GetProperties()

有關為特定類型聲明的所有屬性的列表,請使用DeclaredProperties而不是GetProperties() 對於屬性的完整列表,包括繼承的,非公共的,實例和靜態屬性,可以使用擴展方法GetRuntimeProperties()

有關TypeInfo更多信息,請參見MSDN文檔

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM