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

◆ WriteArray()

void System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteArray ( string source,
string choiceSource,
ElementAccessor[] elements,
TextAccessor text,
ChoiceIdentifierAccessor choice,
TypeDesc arrayTypeDesc )
inlineprivate

Definition at line 1232 of file XmlSerializationWriterCodeGen.cs.

1233 {
1234 if (elements.Length != 0 || text != null)
1235 {
1236 base.Writer.WriteLine("{");
1237 base.Writer.Indent++;
1238 string cSharpName = arrayTypeDesc.CSharpName;
1240 if (arrayTypeDesc.IsNullable)
1241 {
1242 base.Writer.WriteLine("if (a != null) {");
1243 base.Writer.Indent++;
1244 }
1245 if (choice != null)
1246 {
1247 string cSharpName2 = choice.Mapping.TypeDesc.CSharpName;
1248 WriteArrayLocalDecl(cSharpName2 + "[]", "c", choiceSource, choice.Mapping.TypeDesc);
1249 base.Writer.WriteLine("if (c == null || c.Length < a.Length) {");
1250 base.Writer.Indent++;
1251 base.Writer.Write("throw CreateInvalidChoiceIdentifierValueException(");
1252 WriteQuotedCSharpString(choice.Mapping.TypeDesc.FullName);
1253 base.Writer.Write(", ");
1254 WriteQuotedCSharpString(choice.MemberName);
1255 base.Writer.Write(");");
1256 base.Writer.Indent--;
1257 base.Writer.WriteLine("}");
1258 }
1259 WriteArrayItems(elements, text, choice, arrayTypeDesc, "a", "c");
1260 if (arrayTypeDesc.IsNullable)
1261 {
1262 base.Writer.Indent--;
1263 base.Writer.WriteLine("}");
1264 }
1265 base.Writer.Indent--;
1266 base.Writer.WriteLine("}");
1267 }
1268 }
void WriteArrayLocalDecl(string typeName, string variableName, string initValue, TypeDesc arrayTypeDesc)
void WriteArrayItems(ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, TypeDesc arrayTypeDesc, string arrayName, string choiceName)

References System.Xml.Dictionary, System.source, System.text, System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteArrayItems(), System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteArrayLocalDecl(), and System.Xml.Serialization.XmlSerializationCodeGen.WriteQuotedCSharpString().

Referenced by System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteMember().