Microsoft.OpenApi.Extensions Enum.GetDisplayName() 不起作用,复制过来时工作正常

Microsoft.OpenApi.Extensions Enum.GetDisplayName() doesn't work, works fine when copied over

想要一种无需创建枚举即可快速设置枚举显示的方法 class,我遇到了 [Display(Name = "display name")] 本来打算自己写方法,结果发现Microsoft.OpenApi.Extensions.EnumExtensions.GetDisplayName.

public static string GetDisplayName(this Enum enumValue)
{
    var attribute = enumValue.GetAttributeOfType<DisplayAttribute>();
    return attribute == null ? enumValue.ToString() : attribute.Name;
}

它不起作用,返回 enum.ToString() 值,但如果我将方法原封不动地复制到我的项目中,它就可以正常工作。知道为什么吗? 运行.net 5.0

他们检查自己的 Microsoft.OpenApi.Attributes.DisplayAttribute

要么滚动你自己的扩展方法,指向 Systems.ComponentModel.DataAnnotations.DisplayAttribute,要么(不太优选)将他们的 DisplayAttribute 应用到你的枚举中。