public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject jObject = JObject.Load(reader); var typeId = Convert.ToInt32(jObject.Property("Type").Value.ToString()); var type = (UITypes)typeId; object target = null; switch (type) { case UITypes.Form: target = new FormDefinition(); break; case UITypes.Grid: target = new GridDefinition(); break; case UITypes.View: target = new ViewDefinition(); break; default: throw new NotImplementedException("The UIDefinition type is not supported!"); } serializer.Populate(jObject.CreateReader(), target); return(target); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject jObject = JObject.Load(reader); var typeId = Convert.ToInt32(jObject.Property("Type").Value.ToString()); var type = (UITypes)typeId; object target = null; switch (type) { case UITypes.Form: target = new FormDefinition(); break; case UITypes.Grid: target = new GridDefinition(); break; case UITypes.View: target = new ViewDefinition(); break; default: throw new NotImplementedException("The UIDefinition type is not supported!"); } serializer.Populate(jObject.CreateReader(), target); return target; }