示例#1
0
        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);
        }