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

◆ WriteEnumAndArrayTypes()

bool System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEnumAndArrayTypes ( StructMapping structMapping,
object o,
string n,
string ns )
inlineprivate

Definition at line 591 of file ReflectionXmlSerializationWriter.cs.

592 {
593 Type type = o.GetType();
594 foreach (object typeMapping in _mapping.Scope.TypeMappings)
595 {
596 if (typeMapping is EnumMapping enumMapping && enumMapping.TypeDesc.Type == type)
597 {
598 base.Writer.WriteStartElement(n, ns);
599 WriteXsiType(enumMapping.TypeName, ns);
600 base.Writer.WriteString(WriteEnumMethod(enumMapping, o));
601 base.Writer.WriteEndElement();
602 return true;
603 }
604 if (typeMapping is ArrayMapping arrayMapping && arrayMapping.TypeDesc.Type == type)
605 {
606 base.Writer.WriteStartElement(n, ns);
607 WriteXsiType(arrayMapping.TypeName, ns);
608 WriteMember(o, null, arrayMapping.ElementsSortedByDerivation, null, null, arrayMapping.TypeDesc, writeAccessors: true);
609 base.Writer.WriteEndElement();
610 return true;
611 }
612 }
613 return false;
614 }
void WriteMember(object o, object choiceSource, ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, TypeDesc memberTypeDesc, bool writeAccessors)

References System.Xml.Serialization.ReflectionXmlSerializationWriter._mapping, System.Xml.Serialization.XmlMapping.Scope, System.type, System.Xml.Serialization.TypeScope.TypeMappings, System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEnumMethod(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteMember(), and System.Xml.Serialization.XmlSerializationWriter.WriteXsiType().

Referenced by System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteStructMethod().