我有自定義屬性,像一個枚舉:如何反向解析自定義屬性?
public enum EnumStatus
{
[CharValue('*')]
Empty,
[CharValue('A')]
value1,
[CharValue('P')]
value2,
}
「前進」的方式似乎很容易,有越來越 使用反射,GetCustomAttributes並像自定義屬性的枚舉值到來。
但我想要某種反向解析。 有一個char值,我想有一個枚舉值來處理。
類似:
public static Enum GetEnumValue(this Enum source, char value)
{...}
應返回EnumStatus.value1,如果我把一個 'A' 的值參數。
有什麼想法?我不想製作額外的散列表,推遲枚舉。
非常感謝你!
非常感謝您! 「默認」描述屬性已被使用。所以我需要另一種方式。但也許我可以用這個例子。它不需要是通用的,但我需要「通用」屬性。 – 2012-04-13 18:00:51
從實施例I由此這裏: 公共靜態ŤGetEnum(char值) { 變種類型= typeof運算(T); 如果(type.IsEnum) { 的foreach(在type.GetFields()VAR字段) { var屬性= Attribute.GetCustomAttribute(場, typeof運算(CharValueAttribute))作爲CharValueAttribute; (屬性!= null) if(attribute.Value == value) return(T)field.GetValue(null); } } } return default(T); } –
2012-04-13 18:50:20