我可以使用以下代码获取指定类中所有属性名称的简单文本列表。
PropertyInfo[] propertyInfos;
propertyInfos = typeof(MyClass).GetProperties();
foreach (var item in propertyInfos)
{
yield return item.Name.ToString();
}
但我无法弄清楚如何获取每个字段的显示名称。显示名称使用data属性指定:
[Display(Name = "First Name")]
public string FirstName { get; set; }
有没有办法使用反射?或者以其他方式以编程方式执行此操作?
答案 0 :(得分:4)
您可以通过以下方式按类型获取CustomAttribute:
DisplayAttribute attribute = (DisplayAttribute)item.GetCustomAttribute(typeof(DisplayAttribute));
现在您可以使用例如
获取DisplayAttribute字段的任何值attributes.Name