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

◆ TryCreateBuiltInDataContract() [2/2]

static bool System.Runtime.Serialization.DataContract.DataContractCriticalHelper.TryCreateBuiltInDataContract ( Type type,
[NotNullWhen(true)] out DataContract dataContract )
inlinestaticinherited

Definition at line 635 of file DataContract.cs.

636 {
637 if (type.IsEnum)
638 {
639 dataContract = null;
640 return false;
641 }
642 dataContract = null;
643 switch (type.GetTypeCode())
644 {
645 case TypeCode.Boolean:
646 dataContract = new BooleanDataContract();
647 break;
648 case TypeCode.Byte:
649 dataContract = new UnsignedByteDataContract();
650 break;
651 case TypeCode.Char:
652 dataContract = new CharDataContract();
653 break;
654 case TypeCode.DateTime:
655 dataContract = new DateTimeDataContract();
656 break;
657 case TypeCode.Decimal:
658 dataContract = new DecimalDataContract();
659 break;
660 case TypeCode.Double:
661 dataContract = new DoubleDataContract();
662 break;
663 case TypeCode.Int16:
664 dataContract = new ShortDataContract();
665 break;
666 case TypeCode.Int32:
667 dataContract = new IntDataContract();
668 break;
669 case TypeCode.Int64:
670 dataContract = new LongDataContract();
671 break;
672 case TypeCode.SByte:
673 dataContract = new SignedByteDataContract();
674 break;
675 case TypeCode.Single:
676 dataContract = new FloatDataContract();
677 break;
678 case TypeCode.String:
679 dataContract = new StringDataContract();
680 break;
681 case TypeCode.UInt16:
682 dataContract = new UnsignedShortDataContract();
683 break;
684 case TypeCode.UInt32:
685 dataContract = new UnsignedIntDataContract();
686 break;
687 case TypeCode.UInt64:
688 dataContract = new UnsignedLongDataContract();
689 break;
690 default:
691 if (type == typeof(byte[]))
692 {
693 dataContract = new ByteArrayDataContract();
694 }
695 else if (type == typeof(object))
696 {
697 dataContract = new ObjectDataContract();
698 }
699 else if (type == typeof(Uri))
700 {
701 dataContract = new UriDataContract();
702 }
703 else if (type == typeof(XmlQualifiedName))
704 {
705 dataContract = new QNameDataContract();
706 }
707 else if (type == typeof(TimeSpan))
708 {
709 dataContract = new TimeSpanDataContract();
710 }
711 else if (type == typeof(Guid))
712 {
713 dataContract = new GuidDataContract();
714 }
715 else if (type == typeof(Enum) || type == typeof(ValueType))
716 {
717 dataContract = new SpecialTypeDataContract(type, DictionaryGlobals.ObjectLocalName, DictionaryGlobals.SchemaNamespace);
718 }
719 else if (type == typeof(Array))
720 {
721 dataContract = new CollectionDataContract(type);
722 }
723 else if (type == typeof(XmlElement) || type == typeof(XmlNode[]))
724 {
725 dataContract = new XmlDataContract(type);
726 }
727 break;
728 }
729 return dataContract != null;
730 }

References System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.DictionaryGlobals.ObjectLocalName, System.Runtime.Serialization.DictionaryGlobals.SchemaNamespace, and System.type.

Referenced by System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetBuiltInDataContract(), System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetBuiltInDataContract(), and System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetBuiltInDataContract().