using System; using System.ComponentModel; namespace TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication.implementations { public static class EnumExtensions { public static bool TryParseByDescription(string description, out TEnum result) where TEnum : struct, Enum { foreach (var field in typeof(TEnum).GetFields()) { var attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; if ((attribute != null && attribute.Description == description) || field.Name == description) { result = (TEnum)field.GetValue(null); return true; } } result = default; return false; } } }