public MeteringModeDescriptionAttribute(IntegralProviderType type, string description) { IntegralProviderType = type; Description = description; }
public static IDictionary <int, string> GetMeteringModeDescriptionAttributeTitleAndValue(IntegralProviderType integralProviderType) { var dict = new Dictionary <int, string>(); var enumType = typeof(MeteringMode); var values = Enum.GetValues(enumType); foreach (var value in values) { string name = Enum.GetName(enumType, value); if (name != null) { // 获取枚举字段。 FieldInfo fieldInfo = enumType.GetField(name); if (fieldInfo != null) { // 获取描述的属性。 Attribute[] attrs = Attribute.GetCustomAttributes(fieldInfo, typeof(MeteringModeDescriptionAttribute), false); var attr = attrs.FirstOrDefault(o => (((MeteringModeDescriptionAttribute)o).IntegralProviderType & integralProviderType) == integralProviderType); if (attr != null) { dict.Add((int)value, ((MeteringModeDescriptionAttribute)attr).Description); } } } } return(dict); }