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

◆ GenerateInitCallbacksMethod()

void System.Xml.Serialization.XmlSerializationReaderCodeGen.GenerateInitCallbacksMethod ( )
inlineprivate

Definition at line 402 of file XmlSerializationReaderCodeGen.cs.

403 {
404 base.Writer.WriteLine();
405 base.Writer.WriteLine("protected override void InitCallbacks() {");
406 base.Writer.Indent++;
407 string text = NextMethodName("Array");
408 bool flag = false;
409 TypeScope[] scopes = base.Scopes;
410 foreach (TypeScope typeScope in scopes)
411 {
412 foreach (TypeMapping typeMapping in typeScope.TypeMappings)
413 {
414 if (typeMapping.IsSoap && (typeMapping is StructMapping || typeMapping is EnumMapping || typeMapping is ArrayMapping || typeMapping is NullableMapping) && !typeMapping.TypeDesc.IsRoot)
415 {
416 string s;
417 if (typeMapping is ArrayMapping)
418 {
419 s = text;
420 flag = true;
421 }
422 else
423 {
424 s = (string)base.MethodNames[typeMapping];
425 }
426 base.Writer.Write("AddReadCallback(");
427 WriteID(typeMapping.TypeName);
428 base.Writer.Write(", ");
429 WriteID(typeMapping.Namespace);
430 base.Writer.Write(", ");
431 base.Writer.Write(base.RaCodeGen.GetStringForTypeof(typeMapping.TypeDesc.CSharpName, typeMapping.TypeDesc.UseReflection));
432 base.Writer.Write(", new ");
434 base.Writer.Write("(this.");
435 base.Writer.Write(s);
436 base.Writer.WriteLine("));");
437 }
438 }
439 }
440 base.Writer.Indent--;
441 base.Writer.WriteLine("}");
442 if (flag)
443 {
444 base.Writer.WriteLine();
445 base.Writer.Write("object ");
446 base.Writer.Write(text);
447 base.Writer.WriteLine("() {");
448 base.Writer.Indent++;
449 base.Writer.WriteLine("// dummy array method");
450 base.Writer.WriteLine("UnknownNode(null);");
451 base.Writer.WriteLine("return null;");
452 base.Writer.Indent--;
453 base.Writer.WriteLine("}");
454 }
455 }
delegate? object XmlSerializationReadCallback()

References System.Xml.Dictionary, System.FullName, System.Xml.Serialization.XmlSerializationReaderCodeGen.NextMethodName(), System.s, System.text, System.Xml.Serialization.XmlSerializationReaderCodeGen.WriteID(), and System.Xml.Serialization.XmlSerializationReadCallback().

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