I use the Jon approach (Description attribute for enumerations) along with the extension method below to conveniently find a description:
public static class EnumExtensions
{
public static T GetAttribute<T>(this Enum enumerationValue) where T : Attribute
{
T[] attributes = GetAttributes<T>(enumerationValue);
return attributes.Length > 0 ? attributes[0] : null;
}
public static string GetDescription(this Enum enumerationValue, string descriptionIfNull = "")
{
if (enumerationValue != null)
{
DescriptionAttribute attribute = enumerationValue.GetAttribute<DescriptionAttribute>();
return attribute != null ? attribute.Description : enumerationValue.ToString();
}
return descriptionIfNull;
}
}
Usage example:
[TestClass]
public class WhenGettingDescriptionOfAnEnum
{
private enum SampleEnum
{
First,
[Description("description")]
Second
}
[TestMethod]
public void ShouldReturnNameOfEnumIfItHasNoDescription()
{
SampleEnum.First.GetDescription().Should().Be("First");
}
[TestMethod]
public void ShouldReturnDescriptionIfThereIsOne()
{
SampleEnum.Second.GetDescription().Should().Be("description");
}
}
source
share