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

◆ GenerateTypeElement()

string System.Xml.Serialization.XmlSerializationWriterCodeGen.GenerateTypeElement ( XmlTypeMapping xmlTypeMapping)
inlineprivate

Definition at line 538 of file XmlSerializationWriterCodeGen.cs.

539 {
540 ElementAccessor accessor = xmlTypeMapping.Accessor;
541 TypeMapping mapping = accessor.Mapping;
542 string text = NextMethodName(accessor.Name);
543 base.Writer.WriteLine();
544 base.Writer.Write("public void ");
545 base.Writer.Write(text);
546 base.Writer.WriteLine("(object o) {");
547 base.Writer.Indent++;
548 base.Writer.WriteLine("WriteStartDocument();");
549 base.Writer.WriteLine("if (o == null) {");
550 base.Writer.Indent++;
551 if (accessor.IsNullable)
552 {
553 if (mapping.IsSoap)
554 {
555 WriteEncodedNullTag(accessor.Name, (accessor.Form == XmlSchemaForm.Qualified) ? accessor.Namespace : "");
556 }
557 else
558 {
559 WriteLiteralNullTag(accessor.Name, (accessor.Form == XmlSchemaForm.Qualified) ? accessor.Namespace : "");
560 }
561 }
562 else
563 {
564 WriteEmptyTag(accessor.Name, (accessor.Form == XmlSchemaForm.Qualified) ? accessor.Namespace : "");
565 }
566 base.Writer.WriteLine("return;");
567 base.Writer.Indent--;
568 base.Writer.WriteLine("}");
569 if (!mapping.IsSoap && !mapping.TypeDesc.IsValueType && !mapping.TypeDesc.Type.IsPrimitive)
570 {
571 base.Writer.WriteLine("TopLevelElement();");
572 }
573 WriteMember("o", null, new ElementAccessor[1] { accessor }, null, null, mapping.TypeDesc, !accessor.IsSoap);
574 if (mapping.IsSoap)
575 {
576 base.Writer.WriteLine("WriteReferencedElements();");
577 }
578 base.Writer.Indent--;
579 base.Writer.WriteLine("}");
580 return text;
581 }
void WriteMember(string source, AttributeAccessor attribute, TypeDesc memberTypeDesc, string parent)

References System.Xml.Serialization.Accessor.Accessor(), System.Xml.Serialization.Mapping.Mapping(), System.Xml.Dictionary, System.Xml.Serialization.ElementAccessor.IsSoap, System.Xml.Serialization.XmlSerializationWriterCodeGen.NextMethodName(), System.text, System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteEmptyTag(), System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteEncodedNullTag(), System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteLiteralNullTag(), and System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteMember().

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