public static Type FindPropertyType(Object targetObject, string propertyPath) { var parser = new PathParser(propertyPath); var currentType = targetObject.GetType(); var next = parser.Next(); while (next != null) { currentType = FindFieldType(currentType, next); next = parser.Next(); } return(currentType); }