static List <PropertyItem> ParseDynamicObject(DynamicObject target) { var result = new List <PropertyItem>(); foreach (var propertyName in target.GetDynamicMemberNames()) { var value = DynamicHelper.GetValue(target, propertyName); var propertyType = value != null?value.GetType() : typeof(object); var property = new PropertyItem(target, value, new DynamicPropertyInfo(propertyName, propertyType), false); result.Add(property); } return(result); }