public object ReadValue(XmlDictionaryReader reader)
{
object obj2;
if (!this.isArray)
{
switch (this.typeCode)
{
case TypeCode.Int32:
return reader.ReadElementContentAsInt();
case TypeCode.Int64:
return reader.ReadElementContentAsLong();
case TypeCode.Single:
return reader.ReadElementContentAsFloat();
case TypeCode.Double:
return reader.ReadElementContentAsDouble();
case TypeCode.Decimal:
return reader.ReadElementContentAsDecimal();
case TypeCode.DateTime:
return reader.ReadElementContentAsDateTime();
case TypeCode.String:
return reader.ReadElementContentAsString();
case TypeCode.Boolean:
return reader.ReadElementContentAsBoolean();
}
throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("SFxInvalidUseOfPrimitiveOperationFormatter")));
}
switch (this.typeCode)
{
case TypeCode.Boolean:
if (reader.IsEmptyElement)
{
reader.Read();
return new bool[0];
}
reader.ReadStartElement();
obj2 = reader.ReadBooleanArray(this.itemName, this.itemNamespace);
reader.ReadEndElement();
return obj2;
case TypeCode.Byte:
return reader.ReadElementContentAsBase64();
case TypeCode.Int32:
if (reader.IsEmptyElement)
{
reader.Read();
return new int[0];
}
reader.ReadStartElement();
obj2 = reader.ReadInt32Array(this.itemName, this.itemNamespace);
reader.ReadEndElement();
return obj2;
case TypeCode.Int64:
if (reader.IsEmptyElement)
{
reader.Read();
return new long[0];
}
reader.ReadStartElement();
obj2 = reader.ReadInt64Array(this.itemName, this.itemNamespace);
reader.ReadEndElement();
return obj2;
case TypeCode.Single:
if (reader.IsEmptyElement)
{
reader.Read();
return new float[0];
}
reader.ReadStartElement();
obj2 = reader.ReadSingleArray(this.itemName, this.itemNamespace);
reader.ReadEndElement();
return obj2;
case TypeCode.Double:
if (reader.IsEmptyElement)
{
reader.Read();
return new double[0];
}
reader.ReadStartElement();
obj2 = reader.ReadDoubleArray(this.itemName, this.itemNamespace);
reader.ReadEndElement();
return obj2;
case TypeCode.Decimal:
if (reader.IsEmptyElement)
{
reader.Read();
return new decimal[0];
}
reader.ReadStartElement();
obj2 = reader.ReadDecimalArray(this.itemName, this.itemNamespace);
reader.ReadEndElement();
return obj2;
case TypeCode.DateTime:
if (reader.IsEmptyElement)
{
reader.Read();
return new DateTime[0];
}
reader.ReadStartElement();
obj2 = reader.ReadDateTimeArray(this.itemName, this.itemNamespace);
reader.ReadEndElement();
return obj2;
}
throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("SFxInvalidUseOfPrimitiveOperationFormatter")));
}