在 C# 中,我有一個帶有屬性的類。
public class MyClass
{
public MyPropClass1 Prop1 { get; set; }
public MyPropClass2 Prop2 { get; set; }
public AnotherClassAltogether Prop3 {get; set; }
}
假設 MyPropClass1 和 MyPropClass2 都從 MyPropBaseClass 繼承,但 AnotherClassAltogether 沒有。
從 MyClass 獲取所有屬性的最簡單方法是什么?
例如,如果我想根據 MyPropBaseClass 查詢 MyClass 的屬性,那么它應該回傳 Prop1 和 Prop2
uj5u.com熱心網友回復:
您需要獲取所有屬性,然后用于PropertyInfo.PropertyType查找從目標型別繼承的屬性,您可以使用Type.IsAssignableTo:
var props = typeof(MyClass)
.GetProperties()
.Where(pi => pi.PropertyType.IsAssignableTo(typeof(MyPropBaseClass)))
.ToList();
IsAssignableTo從 .NET 5 開始可用,因此對于早期版本,請使用IsAssignableFrom:typeof(MyBase).IsAssignableFrom(pi.PropertyType)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/335856.html
