private static object DictionaryToObject(object parsed, Type objtype) { object returnObject = Activator.CreateInstance(objtype); Dictionary <string, object> dict = (Dictionary <string, object>)parsed; foreach (FieldInfo field in objtype.GetFields()) { if (dict.ContainsKey(field.Name)) { field.SetValue(returnObject, ParsedToObject(Helper.GetValueFromDictionary <string, object>(dict, field.Name), field.FieldType)); } } foreach (PropertyInfo property in objtype.GetProperties()) { if (property.CanWrite && property.CanRead && property.GetIndexParameters().Length == 0 && dict.ContainsKey(property.Name)) { property.SetValue(returnObject, ParsedToObject(Helper.GetValueFromDictionary <string, object>(dict, property.Name), property.PropertyType), null); } } return(returnObject); }