簡體   English   中英

獲取不到c#中一個抽象class的屬性名

[英]I can't get the attribute name of an abstract class in c#

這是 class:

public abstract class DbAttributeInstance
{
    public static DbAttribute AALLAN;

    public static DbAttribute AANGXZ;

    public static DbAttribute AANGYZ;

    public static DbAttribute ABLE;

    public static DbAttribute ABOP;
...
}

我使用以下代碼獲取成員名稱,但一無所獲:

System.Reflection.PropertyInfo[] properties = typeof(DbAttributeInstance).GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);

此操作的最終目的是測試 class DbAttributeInstance的每個屬性的有效性,如下所示:

if (elem.IsAttributeValid(DbAttributeInstance.GEOM)) then...

但是DbAttributeInstance中的屬性太多了,無法一一測試。 我想使用以下表格測試每個成員:

//original way to be replaced
elem.IsAttributeValid(DbAttributeInstance.member1)
elem.IsAttributeValid(DbAttributeInstance.member1)
elem.IsAttributeValid(DbAttributeInstance.member1)
elem.IsAttributeValid(DbAttributeInstance.member1)
elem.IsAttributeValid(DbAttributeInstance.member1)
...
//new
foreach (member in DbAttributeInstance's members) {
    elem.IsAttributeValid(member)
}

根據MSDN ,我認為你需要使用另一個標志:

有一個BindingFlags.Static

暫無
暫無

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

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