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

◆ ValueAsString()

string System.Xml.XmlSqlBinaryReader.ValueAsString ( BinXmlToken token)
inlineprivate

Definition at line 3638 of file XmlSqlBinaryReader.cs.

3639 {
3640 try
3641 {
3643 switch (token)
3644 {
3645 case BinXmlToken.SQL_NCHAR:
3646 case BinXmlToken.SQL_NVARCHAR:
3647 case BinXmlToken.SQL_NTEXT:
3648 return GetString(_tokDataPos, _tokLen);
3649 case BinXmlToken.XSD_BOOLEAN:
3650 if (_data[_tokDataPos] == 0)
3651 {
3652 return "false";
3653 }
3654 return "true";
3655 case BinXmlToken.SQL_SMALLINT:
3656 case BinXmlToken.SQL_INT:
3657 case BinXmlToken.SQL_BIT:
3658 case BinXmlToken.SQL_TINYINT:
3659 case BinXmlToken.SQL_BIGINT:
3660 case BinXmlToken.XSD_BYTE:
3661 case BinXmlToken.XSD_UNSIGNEDSHORT:
3662 case BinXmlToken.XSD_UNSIGNEDINT:
3663 return ValueAsLong().ToString(CultureInfo.InvariantCulture);
3664 case BinXmlToken.XSD_UNSIGNEDLONG:
3665 return ValueAsULong().ToString(CultureInfo.InvariantCulture);
3666 case BinXmlToken.SQL_REAL:
3667 return XmlConvert.ToString(GetSingle(_tokDataPos));
3668 case BinXmlToken.SQL_FLOAT:
3669 return XmlConvert.ToString(GetDouble(_tokDataPos));
3670 case BinXmlToken.SQL_UUID:
3671 {
3673 int int2 = GetInt32(tokDataPos2);
3674 short int3 = GetInt16(tokDataPos2 + 4);
3675 short int4 = GetInt16(tokDataPos2 + 6);
3676 return new Guid(int2, int3, int4, _data[tokDataPos2 + 8], _data[tokDataPos2 + 9], _data[tokDataPos2 + 10], _data[tokDataPos2 + 11], _data[tokDataPos2 + 12], _data[tokDataPos2 + 13], _data[tokDataPos2 + 14], _data[tokDataPos2 + 15]).ToString();
3677 }
3678 case BinXmlToken.SQL_SMALLMONEY:
3679 return new BinXmlSqlMoney(GetInt32(_tokDataPos)).ToString();
3680 case BinXmlToken.SQL_MONEY:
3681 return new BinXmlSqlMoney(GetInt64(_tokDataPos)).ToString();
3682 case BinXmlToken.SQL_DECIMAL:
3683 case BinXmlToken.SQL_NUMERIC:
3684 case BinXmlToken.XSD_DECIMAL:
3685 return new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL).ToString();
3686 case BinXmlToken.SQL_CHAR:
3687 case BinXmlToken.SQL_VARCHAR:
3688 case BinXmlToken.SQL_TEXT:
3689 {
3690 int tokDataPos = _tokDataPos;
3691 int @int = GetInt32(tokDataPos);
3692 Encoding encoding = Encoding.GetEncoding(@int);
3693 return encoding.GetString(_data, tokDataPos + 4, _tokLen - 4);
3694 }
3695 case BinXmlToken.SQL_BINARY:
3696 case BinXmlToken.SQL_VARBINARY:
3697 case BinXmlToken.SQL_IMAGE:
3698 case BinXmlToken.SQL_UDT:
3699 case BinXmlToken.XSD_BASE64:
3700 return Convert.ToBase64String(_data, _tokDataPos, _tokLen);
3701 case BinXmlToken.XSD_BINHEX:
3702 return BinHexEncoder.Encode(_data, _tokDataPos, _tokLen);
3703 case BinXmlToken.SQL_DATETIME:
3704 case BinXmlToken.SQL_SMALLDATETIME:
3705 case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3706 case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3707 case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3708 case BinXmlToken.XSD_KATMAI_TIME:
3709 case BinXmlToken.XSD_KATMAI_DATETIME:
3710 case BinXmlToken.XSD_KATMAI_DATE:
3711 case BinXmlToken.XSD_TIME:
3712 case BinXmlToken.XSD_DATETIME:
3713 case BinXmlToken.XSD_DATE:
3714 return ValueAsDateTimeString();
3715 case BinXmlToken.XSD_QNAME:
3716 {
3717 int num = ParseMB32(_tokDataPos);
3719 {
3720 throw new XmlException(System.SR.XmlBin_InvalidQNameID, string.Empty);
3721 }
3723 if (qName.prefix.Length == 0)
3724 {
3725 return qName.localname;
3726 }
3727 return qName.prefix + ":" + qName.localname;
3728 }
3729 default:
3731 }
3732 }
3733 catch
3734 {
3735 _state = ScanState.Error;
3736 throw;
3737 }
3738 }
static CultureInfo InvariantCulture
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
string GetString(int pos, int cch)
Exception ThrowUnexpectedToken(BinXmlToken token)

References System.Xml.XmlSqlBinaryReader._data, System.Xml.XmlSqlBinaryReader._state, System.Xml.XmlSqlBinaryReader._symbolTables, System.Xml.XmlSqlBinaryReader._tokDataPos, System.Xml.XmlSqlBinaryReader._token, System.Xml.XmlSqlBinaryReader._tokLen, System.Xml.XmlSqlBinaryReader.CheckValueTokenBounds(), System.Xml.Dictionary, System.Xml.BinHexEncoder.Encode(), 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.Guid, System.Globalization.CultureInfo.InvariantCulture, System.Xml.XmlSqlBinaryReader.ParseMB32(), System.Xml.XmlSqlBinaryReader.SymbolTables.qnameCount, System.Xml.XmlSqlBinaryReader.SymbolTables.qnametable, System.Xml.XmlSqlBinaryReader.ThrowUnexpectedToken(), System.Convert.ToBase64String(), System.Xml.BinXmlSqlDecimal.ToString(), System.Xml.BinXmlSqlMoney.ToString(), System.Xml.XmlConvert.ToString(), System.Xml.XmlSqlBinaryReader.ValueAsDateTimeString(), System.Xml.XmlSqlBinaryReader.ValueAsLong(), System.Xml.XmlSqlBinaryReader.ValueAsULong(), System.SR.XmlBin_InvalidQNameID, and System.Xml.XmlException.

Referenced by System.Xml.XmlSqlBinaryReader.GetAttributeText(), System.Xml.XmlSqlBinaryReader.ScanAttributes(), System.Xml.XmlSqlBinaryReader.ScanOverAnyValue(), and System.Xml.XmlSqlBinaryReader.ValueAs().