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

◆ WriteEnumMethod()

string System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEnumMethod ( EnumMapping mapping,
object v )
inlineprivate

Definition at line 616 of file ReflectionXmlSerializationWriter.cs.

617 {
618 string text = null;
619 if (mapping != null)
620 {
621 ConstantMapping[] constants = mapping.Constants;
622 if (constants.Length != 0)
623 {
624 bool flag = false;
625 long num = Convert.ToInt64(v);
626 foreach (ConstantMapping constantMapping in constants)
627 {
628 if (num == constantMapping.Value)
629 {
630 text = constantMapping.XmlName;
631 flag = true;
632 break;
633 }
634 }
635 if (!flag)
636 {
637 if (!mapping.IsFlags)
638 {
639 throw CreateInvalidEnumValueException(v, mapping.TypeDesc.FullName);
640 }
641 string[] array = new string[constants.Length];
642 long[] array2 = new long[constants.Length];
643 for (int j = 0; j < constants.Length; j++)
644 {
645 array[j] = constants[j].XmlName;
646 array2[j] = constants[j].Value;
647 }
648 text = XmlSerializationWriter.FromEnum(num, array, array2);
649 }
650 }
651 }
652 else
653 {
654 text = v.ToString();
655 }
656 if (mapping.IsSoap)
657 {
658 WriteXsiType(mapping.TypeName, mapping.Namespace);
659 base.Writer.WriteString(text);
660 return null;
661 }
662 return text;
663 }
Exception CreateInvalidEnumValueException(object value, string typeName)

References System.array, System.Xml.Serialization.XmlSerializationWriter.CreateInvalidEnumValueException(), System.Xml.Dictionary, System.Xml.Serialization.XmlSerializationWriter.FromEnum(), System.text, System.Convert.ToInt64(), and System.Xml.Serialization.XmlSerializationWriter.WriteXsiType().

Referenced by System.Xml.Serialization.ReflectionXmlSerializationWriter.CreateXmlSerializationWriteCallback(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteElement(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEnumAndArrayTypes(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteMember(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WritePrimitive(), and System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteText().