c# - 帮助 EnumMemberAttribute?

标签 c# asp.net

我下面有一个枚举,我需要通过传递来引用它 在 "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/

相关文章:

c# - 如何在页面加载时动态更改 aspx 页面的标题

c# - 服务器在写入响应 header 后关闭连接时出现 HttpClient 异常

c# - 如何在asp.net core的路由属性中设置正则表达式的匹配超时

c# - 在 C# 中从 uint[] 转换为 int[] 后调用 ToList() 的异常

c# - 正则表达式匹配最后一个破折号后的所有数字?

asp.net - 在aspx页面中写入Html代码

asp.net - 将 IIS 从经典模式切换到集成模式时的锁定和高 CPU 利用率

c# - 使用 Azuredirectory 在 Azure Blob 中创建 lucene 索引时出错

javascript - 如何使用 HTML 图像请求将数据发送到服务器,或返回数据作为响应

java - 在 Java 中解密 C# AES 加密文本