protected override IDataNode ReadPrimitiveExtensionDataValue(XmlReaderDelegator xmlReader, string dataContractName, string dataContractNamespace) { IDataNode dataNode; switch (_extensionDataValueType) { case null: case JsonGlobals.stringString: dataNode = new DataNode <string>(xmlReader.ReadContentAsString()); break; case JsonGlobals.booleanString: dataNode = new DataNode <bool>(xmlReader.ReadContentAsBoolean()); break; case JsonGlobals.numberString: dataNode = ReadNumericalPrimitiveExtensionDataValue(xmlReader); break; default: throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( XmlObjectSerializer.CreateSerializationException(SR.Format(SR.JsonUnexpectedAttributeValue, _extensionDataValueType))); } xmlReader.ReadEndElement(); return(dataNode); }
IDataNode ReadNumericalPrimitiveExtensionDataValue(XmlReaderDelegator xmlReader) { TypeCode type; object numericalValue = JsonObjectDataContract.ParseJsonNumber(xmlReader.ReadContentAsString(), out type); switch (type) { case TypeCode.Byte: return new DataNode<byte>((byte)numericalValue); case TypeCode.SByte: return new DataNode<sbyte>((sbyte)numericalValue); case TypeCode.Int16: return new DataNode<short>((short)numericalValue); case TypeCode.Int32: return new DataNode<int>((int)numericalValue); case TypeCode.Int64: return new DataNode<long>((long)numericalValue); case TypeCode.UInt16: return new DataNode<ushort>((ushort)numericalValue); case TypeCode.UInt32: return new DataNode<uint>((uint)numericalValue); case TypeCode.UInt64: return new DataNode<ulong>((ulong)numericalValue); case TypeCode.Single: return new DataNode<float>((float)numericalValue); case TypeCode.Double: return new DataNode<double>((double)numericalValue); case TypeCode.Decimal: return new DataNode<decimal>((decimal)numericalValue); default: throw Fx.AssertAndThrow("JsonObjectDataContract.ParseJsonNumber shouldn't return a TypeCode that we're not expecting"); } }
protected override IDataNode ReadPrimitiveExtensionDataValue(XmlReaderDelegator xmlReader, string dataContractName, string dataContractNamespace) { IDataNode node; string str; if (((str = this.extensionDataValueType) != null) && !(str == "string")) { if (str != "boolean") { if (str != "number") { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.Runtime.Serialization.SR.GetString("JsonUnexpectedAttributeValue", new object[] { this.extensionDataValueType }))); } node = this.ReadNumericalPrimitiveExtensionDataValue(xmlReader); } else { node = new DataNode <bool>(xmlReader.ReadContentAsBoolean()); } } else { node = new DataNode <string>(xmlReader.ReadContentAsString()); } xmlReader.ReadEndElement(); return(node); }
private IDataNode ReadNumericalPrimitiveExtensionDataValue(XmlReaderDelegator xmlReader) { TypeCode type; object numericalValue = JsonObjectDataContract.ParseJsonNumber(xmlReader.ReadContentAsString(), out type); switch (type) { case TypeCode.Byte: return(new DataNode <byte>((byte)numericalValue)); case TypeCode.SByte: return(new DataNode <sbyte>((sbyte)numericalValue)); case TypeCode.Int16: return(new DataNode <short>((short)numericalValue)); case TypeCode.Int32: return(new DataNode <int>((int)numericalValue)); case TypeCode.Int64: return(new DataNode <long>((long)numericalValue)); case TypeCode.UInt16: return(new DataNode <ushort>((ushort)numericalValue)); case TypeCode.UInt32: return(new DataNode <uint>((uint)numericalValue)); case TypeCode.UInt64: return(new DataNode <ulong>((ulong)numericalValue)); case TypeCode.Single: return(new DataNode <float>((float)numericalValue)); case TypeCode.Double: return(new DataNode <double>((double)numericalValue)); case TypeCode.Decimal: return(new DataNode <decimal>((decimal)numericalValue)); default: throw new InvalidOperationException(SR.ParseJsonNumberReturnInvalidNumber); } }
IDataNode ReadNumericalPrimitiveExtensionDataValue(XmlReaderDelegator xmlReader) { TypeCode type; object numericalValue = JsonObjectDataContract.ParseJsonNumber(xmlReader.ReadContentAsString(), out type); switch (type) { case TypeCode.Byte: return(new DataNode <byte>((byte)numericalValue)); case TypeCode.SByte: return(new DataNode <sbyte>((sbyte)numericalValue)); case TypeCode.Int16: return(new DataNode <short>((short)numericalValue)); case TypeCode.Int32: return(new DataNode <int>((int)numericalValue)); case TypeCode.Int64: return(new DataNode <long>((long)numericalValue)); case TypeCode.UInt16: return(new DataNode <ushort>((ushort)numericalValue)); case TypeCode.UInt32: return(new DataNode <uint>((uint)numericalValue)); case TypeCode.UInt64: return(new DataNode <ulong>((ulong)numericalValue)); case TypeCode.Single: return(new DataNode <float>((float)numericalValue)); case TypeCode.Double: return(new DataNode <double>((double)numericalValue)); case TypeCode.Decimal: return(new DataNode <decimal>((decimal)numericalValue)); default: throw Fx.AssertAndThrow("JsonObjectDataContract.ParseJsonNumber shouldn't return a TypeCode that we're not expecting"); } }
private static IDataNode ReadNumericalPrimitiveExtensionDataValue(XmlReaderDelegator xmlReader) { TypeCode type; object numericalValue = JsonObjectDataContract.ParseJsonNumber(xmlReader.ReadContentAsString(), out type); return(type switch { TypeCode.Byte => new DataNode <byte>((byte)numericalValue), TypeCode.SByte => new DataNode <sbyte>((sbyte)numericalValue), TypeCode.Int16 => new DataNode <short>((short)numericalValue), TypeCode.Int32 => new DataNode <int>((int)numericalValue), TypeCode.Int64 => new DataNode <long>((long)numericalValue), TypeCode.UInt16 => new DataNode <ushort>((ushort)numericalValue), TypeCode.UInt32 => new DataNode <uint>((uint)numericalValue), TypeCode.UInt64 => new DataNode <ulong>((ulong)numericalValue), TypeCode.Single => new DataNode <float>((float)numericalValue), TypeCode.Double => new DataNode <double>((double)numericalValue), TypeCode.Decimal => new DataNode <decimal>((decimal)numericalValue), _ => throw new InvalidOperationException(SR.ParseJsonNumberReturnInvalidNumber), });
protected override IDataNode ReadPrimitiveExtensionDataValue(XmlReaderDelegator xmlReader, string dataContractName, string dataContractNamespace) { IDataNode dataNode; switch (extensionDataValueType) { case null: case JsonGlobals.stringString: dataNode = new DataNode<string>(xmlReader.ReadContentAsString()); break; case JsonGlobals.booleanString: dataNode = new DataNode<bool>(xmlReader.ReadContentAsBoolean()); break; case JsonGlobals.numberString: dataNode = ReadNumericalPrimitiveExtensionDataValue(xmlReader); break; default: throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.JsonUnexpectedAttributeValue, extensionDataValueType))); } xmlReader.ReadEndElement(); return dataNode; }