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

◆ WriteMember() [1/2]

void System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteMember ( object memberValue,
AttributeAccessor attribute,
TypeDesc memberTypeDesc,
object container )
inlineprivate

Definition at line 678 of file ReflectionXmlSerializationWriter.cs.

679 {
680 if (memberTypeDesc.IsAbstract)
681 {
682 return;
683 }
684 if (memberTypeDesc.IsArrayLike)
685 {
687 TypeDesc arrayElementTypeDesc = memberTypeDesc.ArrayElementTypeDesc;
689 if (attribute.IsList && flag)
690 {
691 base.Writer.WriteStartAttribute(null, attribute.Name, (attribute.Form == XmlSchemaForm.Qualified) ? attribute.Namespace : string.Empty);
692 }
693 if (memberValue == null)
694 {
695 return;
696 }
698 IEnumerator enumerator = enumerable.GetEnumerator();
699 bool flag2 = false;
700 if (enumerator == null)
701 {
702 return;
703 }
704 while (enumerator.MoveNext())
705 {
706 object current = enumerator.Current;
707 if (attribute.IsList)
708 {
709 string stringValue;
710 if (attribute.Mapping is EnumMapping mapping)
711 {
713 }
714 else
715 {
717 }
718 if (flag)
719 {
720 if (flag2)
721 {
722 base.Writer.WriteString(" ");
723 }
724 if (current is byte[])
725 {
726 WriteValue((byte[])current);
727 }
728 else
729 {
731 }
732 }
733 else
734 {
735 if (flag2)
736 {
737 stringBuilder.Append(' ');
738 }
740 }
741 }
742 else
743 {
744 WriteAttribute(current, attribute, container);
745 }
746 flag2 = true;
747 }
748 if (attribute.IsList)
749 {
750 if (flag)
751 {
752 base.Writer.WriteEndAttribute();
753 }
754 else if (stringBuilder.Length != 0)
755 {
756 string ns = ((attribute.Form == XmlSchemaForm.Qualified) ? attribute.Namespace : string.Empty);
757 WriteAttribute(attribute.Name, ns, stringBuilder.ToString());
758 }
759 }
760 }
761 else
762 {
764 }
765 }
bool WritePrimitiveValue(TypeDesc typeDesc, object o, bool isElement, out string stringValue)

References System.Xml.Serialization.ReflectionXmlSerializationWriter.CanOptimizeWriteListSequence(), System.Xml.Dictionary, System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteAttribute, System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEnumMethod(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WritePrimitiveValue(), and System.Xml.Serialization.XmlSerializationWriter.WriteValue().