private dynamic GetBody(PropertyInfo pr) { dynamic expando = new System.Dynamic.ExpandoObject(); if (pr.PropertyType.IsPrimitive || pr.PropertyType == typeof(string)) { ((IDictionary <string, object>)expando)[pr.Name] = pr.PropertyType.FullName; return(expando); } var type = TypeLoader.Find(pr.PropertyType.FullName, _assemblies); var props = PropLoader.Get(type); foreach (var pr2 in props) { if (pr2.PropertyType.IsPrimitive || pr2.PropertyType == typeof(string)) { ((IDictionary <string, object>)expando)[pr2.Name] = pr2.PropertyType.FullName; } else { ((IDictionary <string, object>)expando)[pr2.Name] = GetBody(pr2); } } return(expando); }
private dynamic GetBody(ParameterInfo p) { dynamic expando = new System.Dynamic.ExpandoObject(); if (p.ParameterType.IsPrimitive || p.ParameterType == typeof(string)) { ((IDictionary <string, object>)expando)[p.Name] = p.ParameterType.FullName; return(expando); } try { var type = TypeLoader.Find(p.ParameterType.FullName, _assemblies); var props = PropLoader.Get(type); foreach (var pr in props) { if (pr.PropertyType.IsPrimitive || pr.PropertyType == typeof(string)) { ((IDictionary <string, object>)expando)[pr.Name] = pr.PropertyType.FullName; } else { ((IDictionary <string, object>)expando)[pr.Name] = GetBody(pr); } } return(expando); } catch (Exception e) { var abc = e; } throw new Exception("Something has gone wrong!"); }