public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject jo = JObject.Load(reader); string type = (string)jo["Type"]; SerializableViewElement item; switch (type) { case "StackLayout": item = new SerializableStackLayout(); break; case "Label": item = new SerializableLabel(); break; default: item = new SerializableViewElement(); break; } serializer.Populate(jo.CreateReader(), item); return(item); }
public static View BuildView(SerializableViewElement root) { View ToReturn = null; switch (root.Type) { case "StackLayout": ToReturn = BuildStackLayout((SerializableStackLayout)root); break; case "Label": ToReturn = BuildLabel((SerializableLabel)root); break; } return(ToReturn); }