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

◆ WriteAttribute()

void System.Xml.Serialization.XmlSerializationReaderCodeGen.WriteAttribute ( Member member)
inlineprivate

Definition at line 1826 of file XmlSerializationReaderCodeGen.cs.

1827 {
1828 AttributeAccessor attribute = member.Mapping.Attribute;
1829 if (attribute.Mapping is SpecialMapping)
1830 {
1831 SpecialMapping specialMapping = (SpecialMapping)attribute.Mapping;
1832 if (specialMapping.TypeDesc.Kind == TypeKind.Attribute)
1833 {
1834 WriteSourceBegin(member.ArraySource);
1835 base.Writer.Write("attr");
1836 WriteSourceEnd(member.ArraySource);
1837 base.Writer.WriteLine(";");
1838 }
1839 else
1840 {
1841 if (!specialMapping.TypeDesc.CanBeAttributeValue)
1842 {
1844 }
1845 base.Writer.Write("if (attr is ");
1846 base.Writer.Write(typeof(XmlAttribute).FullName);
1847 base.Writer.WriteLine(") {");
1848 base.Writer.Indent++;
1849 WriteSourceBegin(member.ArraySource);
1850 base.Writer.Write("(");
1851 base.Writer.Write(typeof(XmlAttribute).FullName);
1852 base.Writer.Write(")attr");
1853 WriteSourceEnd(member.ArraySource);
1854 base.Writer.WriteLine(";");
1855 base.Writer.Indent--;
1856 base.Writer.WriteLine("}");
1857 }
1858 }
1859 else if (attribute.IsList)
1860 {
1861 base.Writer.WriteLine("string listValues = Reader.Value;");
1862 base.Writer.WriteLine("string[] vals = listValues.Split(null);");
1863 base.Writer.WriteLine("for (int i = 0; i < vals.Length; i++) {");
1864 base.Writer.Indent++;
1865 string arraySource = GetArraySource(member.Mapping.TypeDesc, member.ArrayName);
1867 WritePrimitive(attribute.Mapping, "vals[i]");
1869 base.Writer.WriteLine(";");
1870 base.Writer.Indent--;
1871 base.Writer.WriteLine("}");
1872 }
1873 else
1874 {
1875 WriteSourceBegin(member.ArraySource);
1876 WritePrimitive(attribute.Mapping, attribute.IsList ? "vals[i]" : "Reader.Value");
1877 WriteSourceEnd(member.ArraySource);
1878 base.Writer.WriteLine(";");
1879 }
1880 if (member.Mapping.CheckSpecified == SpecifiedAccessor.ReadWrite && member.CheckSpecifiedSource != null && member.CheckSpecifiedSource.Length > 0)
1881 {
1882 base.Writer.Write(member.CheckSpecifiedSource);
1883 base.Writer.WriteLine(" = true;");
1884 }
1885 if (member.ParamsReadSource != null)
1886 {
1887 base.Writer.Write(member.ParamsReadSource);
1888 base.Writer.WriteLine(" = true;");
1889 }
1890 }
static string XmlInternalError
Definition SR.cs:1812
Definition SR.cs:7

References System.Xml.Serialization.XmlSerializationReaderCodeGen.Member.ArrayName, System.Xml.Serialization.XmlSerializationReaderCodeGen.Member.ArraySource, System.Xml.Serialization.AccessorMapping.Attribute, System.Xml.Serialization.MemberMapping.CheckSpecified, System.Xml.Serialization.XmlSerializationReaderCodeGen.Member.CheckSpecifiedSource, System.Xml.Dictionary, System.FullName, System.Xml.Serialization.XmlSerializationReaderCodeGen.GetArraySource(), System.Xml.Serialization.XmlSerializationReaderCodeGen.Member.Mapping, System.Xml.Serialization.XmlSerializationReaderCodeGen.Member.ParamsReadSource, System.Xml.Serialization.AccessorMapping.TypeDesc, System.Xml.Serialization.XmlSerializationReaderCodeGen.WritePrimitive(), System.Xml.Serialization.XmlSerializationReaderCodeGen.WriteSourceBegin(), System.Xml.Serialization.XmlSerializationReaderCodeGen.WriteSourceEnd(), and System.SR.XmlInternalError.

Referenced by System.Xml.Serialization.XmlSerializationReaderCodeGen.WriteAttributes().