我下面有一个枚举,我需要通过传递来引用它 在 "Insured Only". 当我这样做时,它说找不到它 实际枚举显示为 InsuredOnly。无论如何我可以通过 正确的值,即 “Insured Only” 而不是 InsuredOnly?
public enum EnumNames
{
Administrator,
[Description("Insured Only")]
InsuredOnly,
}
最佳答案
这里有一个方便的通用方法,可以做你想做的事:
public T Parse<T>(string description) {
foreach (FieldInfo field in typeof(T).GetFields()) {
object[] attributes = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
if ((attributes.Length > 0)
&& ((DescriptionAttribute)attributes[0]).Description.Equals(description)
) return (T)field.GetRawConstantValue();
}
// use default parsing logic if no match is found
return (T)Enum.Parse(typeof(T), description);
}
使用示例:
EnumNames value = Parse<EnumNames>("Insured Only");
关于c# - 帮助 EnumMemberAttribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864256/