using System.ComponentModel.DataAnnotations;
using System.Linq.Expressions;
public int TestProperty { get; set; }
static class Extensions<T> {
public static string Label<TType>(Expression<Func<T, TType>> prop) {
var propertyInfo = ((MemberExpression) prop.Body).Member as PropertyInfo;
if (propertyInfo is not PropertyInfo) {
DisplayAttribute attr = propertyInfo.GetCustomAttribute<DisplayAttribute>();
if (attr is DisplayAttribute) {
return propertyInfo.Name;
public static void Main(string [] args) {
var label = Extensions<TestClass>.Label(mt => mt.TestProperty);
Console.WriteLine($"Property display attribute is {label}");