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

◆ ChangeTypeForXML()

static object System.Data.Common.SqlConvert.ChangeTypeForXML ( object value,
Type type )
inlinestatic

Definition at line 497 of file SqlConvert.cs.

498 {
499 StorageType storageType = DataStorage.GetStorageType(type);
500 Type type2 = value.GetType();
501 StorageType storageType2 = DataStorage.GetStorageType(type2);
502 switch (storageType)
503 {
504 case StorageType.SqlBinary:
505 return new SqlBinary(Convert.FromBase64String((string)value));
506 case StorageType.SqlBoolean:
507 return new SqlBoolean(XmlConvert.ToBoolean((string)value));
508 case StorageType.SqlByte:
509 return new SqlByte(XmlConvert.ToByte((string)value));
510 case StorageType.SqlBytes:
511 return new SqlBytes(Convert.FromBase64String((string)value));
512 case StorageType.SqlChars:
513 return new SqlChars(((string)value).ToCharArray());
514 case StorageType.SqlDateTime:
515 return new SqlDateTime(XmlConvert.ToDateTime((string)value, XmlDateTimeSerializationMode.RoundtripKind));
516 case StorageType.SqlDecimal:
517 return SqlDecimal.Parse((string)value);
518 case StorageType.SqlDouble:
519 return new SqlDouble(XmlConvert.ToDouble((string)value));
520 case StorageType.SqlGuid:
521 return new SqlGuid(XmlConvert.ToGuid((string)value));
522 case StorageType.SqlInt16:
523 return new SqlInt16(XmlConvert.ToInt16((string)value));
524 case StorageType.SqlInt32:
525 return new SqlInt32(XmlConvert.ToInt32((string)value));
526 case StorageType.SqlInt64:
527 return new SqlInt64(XmlConvert.ToInt64((string)value));
528 case StorageType.SqlMoney:
529 return new SqlMoney(XmlConvert.ToDecimal((string)value));
530 case StorageType.SqlSingle:
531 return new SqlSingle(XmlConvert.ToSingle((string)value));
532 case StorageType.SqlString:
533 return new SqlString((string)value);
534 case StorageType.Boolean:
535 if ("1" == (string)value)
536 {
537 return true;
538 }
539 if ("0" == (string)value)
540 {
541 return false;
542 }
543 return XmlConvert.ToBoolean((string)value);
544 case StorageType.Char:
545 return XmlConvert.ToChar((string)value);
546 case StorageType.SByte:
547 return XmlConvert.ToSByte((string)value);
548 case StorageType.Byte:
549 return XmlConvert.ToByte((string)value);
550 case StorageType.Int16:
551 return XmlConvert.ToInt16((string)value);
552 case StorageType.UInt16:
553 return XmlConvert.ToUInt16((string)value);
554 case StorageType.Int32:
555 return XmlConvert.ToInt32((string)value);
556 case StorageType.UInt32:
557 return XmlConvert.ToUInt32((string)value);
558 case StorageType.Int64:
559 return XmlConvert.ToInt64((string)value);
560 case StorageType.UInt64:
561 return XmlConvert.ToUInt64((string)value);
562 case StorageType.Single:
563 return XmlConvert.ToSingle((string)value);
564 case StorageType.Double:
565 return XmlConvert.ToDouble((string)value);
566 case StorageType.Decimal:
567 return XmlConvert.ToDecimal((string)value);
568 case StorageType.DateTime:
569 return XmlConvert.ToDateTime((string)value, XmlDateTimeSerializationMode.RoundtripKind);
570 case StorageType.Guid:
571 return XmlConvert.ToGuid((string)value);
572 case StorageType.Uri:
573 return new Uri((string)value);
574 case StorageType.DateTimeOffset:
575 return XmlConvert.ToDateTimeOffset((string)value);
576 case StorageType.TimeSpan:
577 return storageType2 switch
578 {
580 StorageType.Int32 => new TimeSpan((int)value),
581 StorageType.Int64 => new TimeSpan((long)value),
582 _ => (TimeSpan)value,
583 };
584 default:
585 if (DBNull.Value == value || value == null)
586 {
587 return DBNull.Value;
588 }
589 switch (storageType2)
590 {
591 case StorageType.SqlBinary:
592 return Convert.ToBase64String(((SqlBinary)value).Value);
593 case StorageType.SqlBoolean:
594 return XmlConvert.ToString(((SqlBoolean)value).Value);
595 case StorageType.SqlByte:
596 return XmlConvert.ToString(((SqlByte)value).Value);
597 case StorageType.SqlBytes:
598 return Convert.ToBase64String(((SqlBytes)value).Value);
599 case StorageType.SqlChars:
600 return new string(((SqlChars)value).Value);
601 case StorageType.SqlDateTime:
602 return XmlConvert.ToString(((SqlDateTime)value).Value, XmlDateTimeSerializationMode.RoundtripKind);
603 case StorageType.SqlDecimal:
604 return ((SqlDecimal)value).ToString();
605 case StorageType.SqlDouble:
606 return XmlConvert.ToString(((SqlDouble)value).Value);
607 case StorageType.SqlGuid:
608 return XmlConvert.ToString(((SqlGuid)value).Value);
609 case StorageType.SqlInt16:
610 return XmlConvert.ToString(((SqlInt16)value).Value);
611 case StorageType.SqlInt32:
612 return XmlConvert.ToString(((SqlInt32)value).Value);
613 case StorageType.SqlInt64:
614 return XmlConvert.ToString(((SqlInt64)value).Value);
615 case StorageType.SqlMoney:
616 return XmlConvert.ToString(((SqlMoney)value).Value);
617 case StorageType.SqlSingle:
618 return XmlConvert.ToString(((SqlSingle)value).Value);
619 case StorageType.SqlString:
620 return ((SqlString)value).Value;
621 case StorageType.Boolean:
622 return XmlConvert.ToString((bool)value);
623 case StorageType.Char:
624 return XmlConvert.ToString((char)value);
625 case StorageType.SByte:
626 return XmlConvert.ToString((sbyte)value);
627 case StorageType.Byte:
628 return XmlConvert.ToString((byte)value);
629 case StorageType.Int16:
630 return XmlConvert.ToString((short)value);
631 case StorageType.UInt16:
632 return XmlConvert.ToString((ushort)value);
633 case StorageType.Int32:
634 return XmlConvert.ToString((int)value);
635 case StorageType.UInt32:
636 return XmlConvert.ToString((uint)value);
637 case StorageType.Int64:
638 return XmlConvert.ToString((long)value);
639 case StorageType.UInt64:
640 return XmlConvert.ToString((ulong)value);
641 case StorageType.Single:
642 return XmlConvert.ToString((float)value);
643 case StorageType.Double:
644 return XmlConvert.ToString((double)value);
645 case StorageType.Decimal:
646 return XmlConvert.ToString((decimal)value);
647 case StorageType.DateTime:
649 case StorageType.TimeSpan:
651 case StorageType.Guid:
652 return XmlConvert.ToString((Guid)value);
653 case StorageType.String:
654 return (string)value;
655 case StorageType.CharArray:
656 return new string((char[])value);
657 case StorageType.DateTimeOffset:
659 default:
660 if (value is IConvertible convertible)
661 {
663 }
664 if (value is IFormattable formattable)
665 {
666 return formattable.ToString(null, CultureInfo.InvariantCulture);
667 }
668 return value.ToString();
669 }
670 }
671 }
static CultureInfo InvariantCulture
static bool ToBoolean(string s)
static DateTimeOffset ToDateTimeOffset(string s)
static uint ToUInt32(string s)
static int ToInt32(string s)
static short ToInt16(string s)
static string ToString(bool value)
static float ToSingle(string s)
static TimeSpan ToTimeSpan(string s)
static char ToChar(string s)
static double ToDouble(string s)
static sbyte ToSByte(string s)
static Guid ToGuid(string s)
static DateTime ToDateTime(string s)
static decimal ToDecimal(string s)
static ulong ToUInt64(string s)
static ushort ToUInt16(string s)
static byte ToByte(string s)
static long ToInt64(string s)
static SqlDecimal Parse(string s)

References System.Xml.Dictionary, System.Convert.FromBase64String(), System.Data.Common.DataStorage.GetStorageType(), System.Type.GetType(), System.Globalization.CultureInfo.InvariantCulture, System.Data.SqlTypes.SqlDecimal.Parse(), System.Data.Common.SqlBinary, System.Data.Common.SqlBoolean, System.Data.Common.SqlByte, System.Data.Common.SqlBytes, System.Data.Common.SqlChars, System.Data.Common.SqlDateTime, System.Data.Common.SqlDouble, System.Data.Common.SqlGuid, System.Data.Common.SqlInt16, System.Data.Common.SqlInt32, System.Data.Common.SqlInt64, System.Data.Common.SqlMoney, System.Data.Common.SqlSingle, System.Data.Common.SqlString, System.Data.Common.TimeSpan, System.Convert.ToBase64String(), System.Xml.XmlConvert.ToBoolean(), System.Xml.XmlConvert.ToByte(), System.Xml.XmlConvert.ToChar(), System.Xml.XmlConvert.ToDateTime(), System.Xml.XmlConvert.ToDateTimeOffset(), System.Xml.XmlConvert.ToDecimal(), System.Xml.XmlConvert.ToDouble(), System.Xml.XmlConvert.ToGuid(), System.Xml.XmlConvert.ToInt16(), System.Xml.XmlConvert.ToInt32(), System.Xml.XmlConvert.ToInt64(), System.Xml.XmlConvert.ToSByte(), System.Xml.XmlConvert.ToSingle(), System.Xml.XmlConvert.ToString(), System.Xml.XmlConvert.ToTimeSpan(), System.Xml.XmlConvert.ToUInt16(), System.Xml.XmlConvert.ToUInt32(), System.Xml.XmlConvert.ToUInt64(), System.type, System.Data.Common.Uri, System.DBNull.Value, and System.value.

Referenced by System.Data.XmlTreeGen.AddExtendedProperties(), System.Data.Common.ObjectStorage.ConvertObjectToXml(), System.Data.Common.ObjectStorage.ConvertXmlToObject(), and System.Data.XDRSchema.HandleColumn().