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); }
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(); }