Exemple #1
0
            protected override int ReadArray(XmlDictionaryReader reader, string localName, string namespaceUri, DateTime[] array, int offset, int count)
            {
                XmlJsonReader.CheckArray(array, offset, count);
                int actual = 0;

                while (actual < count && reader.IsStartElement(JsonGlobals.itemString, string.Empty))
                {
                    array[offset + actual] = JsonReaderDelegator.ParseJsonDate(reader.ReadElementContentAsString(), _dateTimeFormat);
                    actual++;
                }
                return(actual);
            }
Exemple #2
0
        internal override void ReadAttributes(XmlReaderDelegator xmlReader)
#endif
        {
            if (attributes == null)
            {
                attributes = new Attributes();
            }
            attributes.Reset();

            if (xmlReader.MoveToAttribute(JsonGlobals.typeString) && xmlReader.Value == JsonGlobals.nullString)
            {
                attributes.XsiNil = true;
            }
            else if (xmlReader.MoveToAttribute(JsonGlobals.serverTypeString))
            {
                XmlQualifiedName qualifiedTypeName = JsonReaderDelegator.ParseQualifiedName(xmlReader.Value);
                attributes.XsiTypeName = qualifiedTypeName.Name;

                string serverTypeNamespace = qualifiedTypeName.Namespace;

                if (!string.IsNullOrEmpty(serverTypeNamespace))
                {
                    switch (serverTypeNamespace[0])
                    {
                    case '#':
                        serverTypeNamespace = string.Concat(Globals.DataContractXsdBaseNamespace, serverTypeNamespace.Substring(1));
                        break;

                    case '\\':
                        if (serverTypeNamespace.Length >= 2)
                        {
                            switch (serverTypeNamespace[1])
                            {
                            case '#':
                            case '\\':
                                serverTypeNamespace = serverTypeNamespace.Substring(1);
                                break;

                            default:
                                break;
                            }
                        }
                        break;

                    default:
                        break;
                    }
                }

                attributes.XsiTypeNamespace = serverTypeNamespace;
            }
            xmlReader.MoveToElement();
        }
            protected override int ReadArray(XmlDictionaryReader reader, string localName, string namespaceUri, DateTime[] array, int offset, int count)
            {
                XmlJsonReader.CheckArray(array, offset, count);
                int num = 0;

                while ((num < count) && reader.IsStartElement("item", string.Empty))
                {
                    array[offset + num] = JsonReaderDelegator.ParseJsonDate(reader.ReadElementContentAsString());
                    num++;
                }
                return(num);
            }
        internal override void ReadAttributes(XmlReaderDelegator xmlReader)
        {
            if (base.attributes == null)
            {
                base.attributes = new Attributes();
            }
            base.attributes.Reset();
            if (xmlReader.MoveToAttribute("type") && (xmlReader.Value == "null"))
            {
                base.attributes.XsiNil = true;
            }
            else if (xmlReader.MoveToAttribute("__type"))
            {
                XmlQualifiedName name = JsonReaderDelegator.ParseQualifiedName(xmlReader.Value);
                base.attributes.XsiTypeName = name.Name;
                string str = name.Namespace;
                if (!string.IsNullOrEmpty(str))
                {
                    switch (str[0])
                    {
                    case '#':
                        str = "http://schemas.datacontract.org/2004/07/" + str.Substring(1);
                        break;

                    case '\\':
                        if (str.Length >= 2)
                        {
                            switch (str[1])
                            {
                            case '#':
                            case '\\':
                                str = str.Substring(1);
                                break;
                            }
                        }
                        break;
                    }
                }
                base.attributes.XsiTypeNamespace = str;
            }
            xmlReader.MoveToElement();
        }