24
使用Type.GetProperties()
您可以檢索當前類的所有屬性和基類的public
屬性。是否有可能獲得基類的private
屬性呢?獲取私有屬性/基礎類的反射方法
感謝
class Base
{
private string Foo { get; set; }
}
class Sub : Base
{
private string Bar { get; set; }
}
Sub s = new Sub();
PropertyInfo[] pinfos = s.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
foreach (PropertyInfo p in pinfos)
{
Console.WriteLine(p.Name);
}
Console.ReadKey();
這將只打印「酒吧」,因爲「富」是在基類和私人。
此外,可以遍歷基類型(type = type.BaseType),直到type.BaseType爲null,以獲得完整的圖片。 – 2010-02-15 16:28:16
不幸的是,這不適用於基類的私有屬性。只爲繼承公衆和保護 – Fabiano 2010-02-15 16:42:28
@Fabiano - 非公共包括私人。 – 2010-02-15 16:56:37