Wanting a quick way to set a display for Enums without creating an enum class, I came across [Display(Name = "display name")]
I was going to write my own method but found Microsoft.OpenApi.Extensions.EnumExtensions.GetDisplayName
.
public static string GetDisplayName(this Enum enumValue)
{
var attribute = enumValue.GetAttributeOfType<DisplayAttribute>();
return attribute == null ? enumValue.ToString() : attribute.Name;
}
It doesn't work, returning the enum.ToString()
value, but if I copy over the method as is into my project, it works fine. Any idea why? Running .net 5.0
CodePudding user response:
They check for their own Microsoft.OpenApi.Attributes.DisplayAttribute
.
Either roll your own extension method, pointing to Systems.ComponentModel.DataAnnotations.DisplayAttribute
, or (less preferably) apply their DisplayAttribute
to your enum.