[英]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.