internal static Value Import(Coherent.UI.Binding.Importer importer)
        {
            var type = importer.Peek();

            switch (type)
            {
            case ValueType.Null:
            {
                importer.SkipValue();
                return(new Value());
            }

            case ValueType.Boolean: return(new Value((bool)Coherent.UI.Binding.Importer.ReadBool(importer)));

            case ValueType.Integer: return(new Value((int)Coherent.UI.Binding.Importer.ReadInt(importer)));

            case ValueType.UInteger: return(new Value((uint)Coherent.UI.Binding.Importer.ReadUInt(importer)));

            case ValueType.SByte: return(new Value((sbyte)Coherent.UI.Binding.Importer.ReadSByte(importer)));

            case ValueType.Byte: return(new Value((byte)Coherent.UI.Binding.Importer.ReadByte(importer)));

            case ValueType.Number: return(new Value((double)Coherent.UI.Binding.Importer.ReadDouble(importer)));

            case ValueType.String: return(new Value((string)Coherent.UI.Binding.Importer.ReadString(importer)));

            case ValueType.Array: return(new Value(importer.Read <Value[]>()));

            case ValueType.Object: return(new Value(importer.Read <Dictionary <string, Value> >()));
            }
            return(null);
        }