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

◆ ChangeType() [8/9]

override object System.Xml.Schema.XmlUnionConverter.ChangeType ( object value,
Type destinationType,
IXmlNamespaceResolver nsResolver )
inline

Definition at line 39 of file XmlUnionConverter.cs.

40 {
41 if (value == null)
42 {
43 throw new ArgumentNullException("value");
44 }
45 if (destinationType == null)
46 {
47 throw new ArgumentNullException("destinationType");
48 }
49 Type type = value.GetType();
50 if (type == XmlBaseConverter.XmlAtomicValueType && _hasAtomicMember)
51 {
52 return ((XmlAtomicValue)value).ValueAs(destinationType, nsResolver);
53 }
54 if (type == XmlBaseConverter.XmlAtomicValueArrayType && _hasListMember)
55 {
56 return XmlAnyListConverter.ItemList.ChangeType(value, destinationType, nsResolver);
57 }
58 if (type == XmlBaseConverter.StringType)
59 {
60 if (destinationType == XmlBaseConverter.StringType)
61 {
62 return value;
63 }
64 XsdSimpleValue xsdSimpleValue = (XsdSimpleValue)base.SchemaType.Datatype.ParseValue((string)value, new NameTable(), nsResolver, createAtomicValue: true);
65 return xsdSimpleValue.XmlType.ValueConverter.ChangeType((string)value, destinationType, nsResolver);
66 }
68 }
XmlBaseConverter(XmlSchemaType schemaType)
Exception CreateInvalidClrMappingException(Type sourceType, Type destinationType)

References System.Xml.Schema.XmlUnionConverter._hasAtomicMember, System.Xml.Schema.XmlUnionConverter._hasListMember, System.Xml.Schema.XmlValueConverter.ChangeType(), System.Xml.Schema.XmlBaseConverter.CreateInvalidClrMappingException(), System.Xml.Dictionary, System.Type.GetType(), System.Xml.Schema.XmlAnyListConverter.ItemList, System.Xml.Schema.XmlBaseConverter.StringType, System.type, System.value, System.Xml.Schema.XmlSchemaType.ValueConverter, System.Xml.Schema.XmlBaseConverter.XmlAtomicValueArrayType, System.Xml.Schema.XmlBaseConverter.XmlAtomicValueType, and System.Xml.Schema.XsdSimpleValue.XmlType.