У меня есть побитовое перечисление, которое имеет несколько значений, каждое из которых имеет атрибут описания.
[Flags]
public enum ParkingAreaType
{
[Description("Car Park")]
CarPark = 1,
[Description("Residential Permit")]
ResidentialPermitZone = 2,
[Description("Commercial Permit")]
CommercialPermitZone = 4,
[Description("On Street Parking")]
OnStreetParking = 8,
Any =
CarPark | ResidentialPermitZone | CommercialPermitZone
}
Я использовал и пробовал несколько методов расширения, которые я нашел в нескольких других вопросах, очень похожих на этот
Получение атрибутов значения Enum
Как получить атрибуты перечисления
В настоящее время я использую фрагмент кода из John Skeets EnumInternals https://github.com/jskeet/unconstrained-melody/blob/master/UnconstrainedMelody/EnumInternals.cs
private static string GetDescription(T value)
{
FieldInfo field = typeof(T).GetField(value.ToString());
return field.GetCustomAttributes(typeof(DescriptionAttribute), false)
.Cast<DescriptionAttribute>()
.Select(x => x.Description)
.FirstOrDefault();
}
Приведенный выше код будет работать, если я просто передам одно перечисление, но если я передам побитовое перечисление, он выдаст ссылку на объект. Я пробовал несколько разных вариантов вышеизложенного из разных примеров, но все с тем же результатом.
Я просто не могу понять, как получить список переданных описаний.