public int x { get; set; }
public position position { get; set; }
position = new position();
public class WindowManager
public window window { get; set; }
public static void Main()
var manager = new WindowManager();
manager.window.position.x = 42;
string path = "window.position.x";
var type = typeof(WindowManager);
PropertyInfo property = null;
foreach (var prop in path.Split('.'))
property = type.GetProperty(prop);
type = property.PropertyType;
Console.WriteLine(property.Name);