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

◆ WritePrimitive()

void System.Xml.Serialization.ReflectionXmlSerializationWriter.WritePrimitive ( WritePrimitiveMethodRequirement method,
string name,
string ns,
object defaultValue,
object o,
TypeMapping mapping,
bool writeXsiType,
bool isElement,
bool isNullable )
inlineprivate

Definition at line 824 of file ReflectionXmlSerializationWriter.cs.

825 {
826 TypeDesc typeDesc = mapping.TypeDesc;
827 if (defaultValue != null && defaultValue != DBNull.Value && mapping.TypeDesc.HasDefaultSupport)
828 {
829 if (mapping is EnumMapping)
830 {
831 if (((EnumMapping)mapping).IsFlags)
832 {
833 IEnumerable<string> values = defaultValue.ToString().Split((char[]?)null, StringSplitOptions.RemoveEmptyEntries);
834 string text = string.Join(", ", values);
835 if (o.ToString() == text)
836 {
837 return;
838 }
839 }
840 else if (o.ToString() == defaultValue.ToString())
841 {
842 return;
843 }
844 }
846 {
847 return;
848 }
849 }
850 XmlQualifiedName xsiType = null;
851 if (writeXsiType)
852 {
853 xsiType = new XmlQualifiedName(mapping.TypeName, mapping.Namespace);
854 }
855 string stringValue = null;
856 bool flag = false;
857 if (mapping is EnumMapping mapping2)
858 {
860 flag = true;
861 }
862 else
863 {
865 }
866 if (flag)
867 {
869 {
871 {
873 }
874 else
875 {
877 }
878 }
879 else if (hasRequirement(method, WritePrimitiveMethodRequirement.WriteNullableStringLiteral))
880 {
882 {
884 {
886 }
887 else
888 {
890 }
891 }
893 {
895 }
896 else
897 {
899 }
900 }
901 else if (hasRequirement(method, WritePrimitiveMethodRequirement.WriteAttribute))
902 {
903 WriteAttribute(name, ns, stringValue);
904 }
905 }
906 else if (o is byte[] value)
907 {
909 {
910 WriteElementStringRaw(name, ns, XmlSerializationWriter.FromByteArrayBase64(value));
911 }
913 {
914 WriteNullableStringLiteralRaw(name, ns, XmlSerializationWriter.FromByteArrayBase64(value));
915 }
916 else if (hasRequirement(method, WritePrimitiveMethodRequirement.WriteAttribute))
917 {
918 WriteAttribute(name, ns, value);
919 }
920 }
921 }
bool WritePrimitiveValue(TypeDesc typeDesc, object o, bool isElement, out string stringValue)
bool hasRequirement(WritePrimitiveMethodRequirement value, WritePrimitiveMethodRequirement requirement)
bool IsDefaultValue(TypeMapping mapping, object o, object value, bool isNullable)
void WriteNullableStringEncoded(string name, string? ns, string? value, XmlQualifiedName? xsiType)
void WriteNullableStringLiteralRaw(string name, string? ns, string? value)
void WriteElementStringRaw(string localName, string? value)
void WriteNullableStringEncodedRaw(string name, string? ns, string? value, XmlQualifiedName? xsiType)

References System.Xml.Serialization.XmlSerializationWriter.FromByteArrayBase64(), System.Xml.Serialization.ReflectionXmlSerializationWriter.hasRequirement(), System.Xml.Serialization.ReflectionXmlSerializationWriter.IsDefaultValue(), System.text, System.DBNull.Value, System.value, System.values, System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteAttribute, System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteElementString, System.Xml.Serialization.XmlSerializationWriter.WriteElementStringRaw(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEnumMethod(), System.Xml.Serialization.XmlSerializationWriter.WriteNullableStringEncoded(), System.Xml.Serialization.XmlSerializationWriter.WriteNullableStringEncodedRaw(), System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteNullableStringLiteral, System.Xml.Serialization.XmlSerializationWriter.WriteNullableStringLiteralRaw(), and System.Xml.Serialization.ReflectionXmlSerializationWriter.WritePrimitiveValue().

Referenced by System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteAttribute(), and System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteElement().