![](/img/trans.png)
[英]System.Reflection.BindingFlags.Instance correspondence to C# access modifers
[英]C# Reflection method GetProperties(BindingFlags.Instance) not returning child class objects
我試圖在省略原始類型的同時檢索對象的子類。
public class Dog
{
public int Id {get;set;}
public int Name {get;set;}
public Breed Breed {get;set;}
}
var dog = new Dog(); var children = dog.GetType().GetProperties(BindingFlags.Instance);
為什么 children 數組不包含品種屬性?
通過僅提供BindingFlags.Instance
,您根本無法獲得任何屬性,因為您沒有發送任何訪問修飾符謂詞。
根據您的需要,將這些標志與按位 OR 運算符|
結合使用
您可以在此處找到文檔: https : //docs.microsoft.com/en-us/dotnet/api/system.reflection.bindingflags?view=netframework-4.8
var children = dog.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
編輯:
不幸的是,枚舉沒有根據屬性值類型過濾屬性的任何值。 為了使其成為一個完整的答案,對僅包含Breed
屬性的數組的過濾由@const-phi 提供:
var result = children.Where(c => c.PropertyType.IsClass).ToArray(); // Const Phi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.