Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ValueAs()

object System.Xml.XmlSqlBinaryReader.ValueAs ( BinXmlToken token,
Type returnType,
IXmlNamespaceResolver namespaceResolver )
inlineprivate

Definition at line 3867 of file XmlSqlBinaryReader.cs.

3868 {
3870 switch (token)
3871 {
3872 case BinXmlToken.SQL_NCHAR:
3873 case BinXmlToken.SQL_NVARCHAR:
3874 case BinXmlToken.SQL_NTEXT:
3876 case BinXmlToken.XSD_BOOLEAN:
3878 case BinXmlToken.SQL_BIT:
3880 case BinXmlToken.SQL_TINYINT:
3882 case BinXmlToken.SQL_SMALLINT:
3883 {
3884 int @int = GetInt16(_tokDataPos);
3886 }
3887 case BinXmlToken.SQL_INT:
3888 {
3889 int int2 = GetInt32(_tokDataPos);
3891 }
3892 case BinXmlToken.SQL_BIGINT:
3893 {
3894 long int4 = GetInt64(_tokDataPos);
3896 }
3897 case BinXmlToken.XSD_BYTE:
3899 case BinXmlToken.XSD_UNSIGNEDSHORT:
3900 {
3901 int uInt = GetUInt16(_tokDataPos);
3903 }
3904 case BinXmlToken.XSD_UNSIGNEDINT:
3905 {
3906 long num3 = GetUInt32(_tokDataPos);
3908 }
3909 case BinXmlToken.XSD_UNSIGNEDLONG:
3910 {
3911 decimal num2 = GetUInt64(_tokDataPos);
3913 }
3914 case BinXmlToken.SQL_REAL:
3915 {
3916 float single = GetSingle(_tokDataPos);
3918 }
3919 case BinXmlToken.SQL_FLOAT:
3920 {
3921 double @double = GetDouble(_tokDataPos);
3923 }
3924 case BinXmlToken.SQL_UUID:
3926 case BinXmlToken.SQL_SMALLMONEY:
3927 return GetValueConverter(XmlTypeCode.Decimal).ChangeType(new BinXmlSqlMoney(GetInt32(_tokDataPos)).ToDecimal(), returnType, namespaceResolver);
3928 case BinXmlToken.SQL_MONEY:
3929 return GetValueConverter(XmlTypeCode.Decimal).ChangeType(new BinXmlSqlMoney(GetInt64(_tokDataPos)).ToDecimal(), returnType, namespaceResolver);
3930 case BinXmlToken.SQL_DECIMAL:
3931 case BinXmlToken.SQL_NUMERIC:
3932 case BinXmlToken.XSD_DECIMAL:
3933 return GetValueConverter(XmlTypeCode.Decimal).ChangeType(new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL).ToDecimal(), returnType, namespaceResolver);
3934 case BinXmlToken.SQL_CHAR:
3935 case BinXmlToken.SQL_VARCHAR:
3936 case BinXmlToken.SQL_TEXT:
3937 {
3938 int tokDataPos = _tokDataPos;
3939 int int3 = GetInt32(tokDataPos);
3940 Encoding encoding = Encoding.GetEncoding(int3);
3942 }
3943 case BinXmlToken.SQL_BINARY:
3944 case BinXmlToken.SQL_VARBINARY:
3945 case BinXmlToken.SQL_IMAGE:
3946 case BinXmlToken.SQL_UDT:
3947 case BinXmlToken.XSD_BINHEX:
3948 case BinXmlToken.XSD_BASE64:
3949 {
3950 byte[] array = new byte[_tokLen];
3951 Array.Copy(_data, _tokDataPos, array, 0, _tokLen);
3952 return GetValueConverter((token == BinXmlToken.XSD_BINHEX) ? XmlTypeCode.HexBinary : XmlTypeCode.Base64Binary).ChangeType(array, returnType, namespaceResolver);
3953 }
3954 case BinXmlToken.SQL_DATETIME:
3955 case BinXmlToken.SQL_SMALLDATETIME:
3956 case BinXmlToken.XSD_KATMAI_TIME:
3957 case BinXmlToken.XSD_KATMAI_DATETIME:
3958 case BinXmlToken.XSD_KATMAI_DATE:
3959 case BinXmlToken.XSD_DATETIME:
3961 case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3962 case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3963 case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3965 case BinXmlToken.XSD_TIME:
3967 case BinXmlToken.XSD_DATE:
3969 case BinXmlToken.XSD_QNAME:
3970 {
3971 int num = ParseMB32(_tokDataPos);
3973 {
3974 throw new XmlException(System.SR.XmlBin_InvalidQNameID, string.Empty);
3975 }
3977 return GetValueConverter(XmlTypeCode.QName).ChangeType(new XmlQualifiedName(qName.localname, qName.namespaceUri), returnType, namespaceResolver);
3978 }
3979 default:
3981 }
3982 }
static string XmlBin_InvalidQNameID
Definition SR.cs:1364
Definition SR.cs:7
static Encoding GetEncoding(int codepage)
Definition Encoding.cs:593
unsafe string GetString(byte *bytes, int byteCount)
Definition Encoding.cs:973
object ChangeType(bool value, Type destinationType)
string GetString(int pos, int cch)
string ValueAsString(BinXmlToken token)
Exception ThrowUnexpectedToken(BinXmlToken token)
XmlValueConverter GetValueConverter(XmlTypeCode typeCode)

References System.Xml.XmlSqlBinaryReader._data, System.Xml.XmlSqlBinaryReader._symbolTables, System.Xml.XmlSqlBinaryReader._tokDataPos, System.Xml.XmlSqlBinaryReader._token, System.Xml.XmlSqlBinaryReader._tokLen, System.array, System.Xml.Schema.XmlValueConverter.ChangeType(), System.Xml.XmlSqlBinaryReader.CheckValueTokenBounds(), System.Array.Copy(), System.Xml.XmlSqlBinaryReader.GetDouble(), System.Text.Encoding.GetEncoding(), System.Xml.XmlSqlBinaryReader.GetInt16(), System.Xml.XmlSqlBinaryReader.GetInt32(), System.Xml.XmlSqlBinaryReader.GetInt64(), System.Xml.XmlSqlBinaryReader.GetSingle(), System.Text.Encoding.GetString(), System.Xml.XmlSqlBinaryReader.GetString(), System.Xml.XmlSqlBinaryReader.GetUInt16(), System.Xml.XmlSqlBinaryReader.GetUInt32(), System.Xml.XmlSqlBinaryReader.GetUInt64(), System.Xml.XmlSqlBinaryReader.GetValueConverter(), System.Xml.XmlSqlBinaryReader.ParseMB32(), System.Xml.XmlSqlBinaryReader.SymbolTables.qnameCount, System.Xml.XmlSqlBinaryReader.SymbolTables.qnametable, System.Xml.XmlSqlBinaryReader.ThrowUnexpectedToken(), System.Xml.BinXmlSqlDecimal.ToDecimal(), System.Xml.XmlSqlBinaryReader.ValueAsDateTime(), System.Xml.XmlSqlBinaryReader.ValueAsDateTimeOffset(), System.Xml.XmlSqlBinaryReader.ValueAsString(), System.SR.XmlBin_InvalidQNameID, and System.Xml.XmlException.

Referenced by System.Xml.XmlSqlBinaryReader.ReadContentAs().