using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication { class Program { class Test { public string PropertyJustForTest1 { get; set; } public Test PropertyJustForTest2 { get; set; } } static void Main(string[] args) { Test test = new Test(); Console.WriteLine(GetPropertyNameHelper.GetPropertyName<object>(() => test.PropertyJustForTest1)); Console.WriteLine(GetPropertyNameHelper.GetPropertyName<object>(() => test.PropertyJustForTest2)); } } static class GetPropertyNameHelper { public static string GetPropertyName<T>(Expression<Func<T>> express) { var memberExpress = express.Body as MemberExpression; if (memberExpress != null) { return memberExpress.Member.Name; } else { return string.Empty; } } } }