public static void Main()
var myClass = new MyClass() { Address = new () };
Console.WriteLine(GetPropertyName(myClass, "Foo"));
private static string GetPropertyName(object model, string propertyName)
var propInfo = model as PropertyInfo;
var props = propInfo != null ? propInfo.PropertyType.GetProperties() : model.GetType().GetProperties();
foreach (var prop in props)
if (prop.Name == propertyName)
var subProb = GetPropertyName(prop, propertyName);
public string Name { get; set; }
public AddressClass Address { get; set; }
public class AddressClass
public MyClass MyClassProp { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }