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

◆ GenerateTypeElement()

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

Definition at line 590 of file XmlSerializationReaderILGen.cs.

591 {
592 ElementAccessor accessor = xmlTypeMapping.Accessor;
593 TypeMapping mapping = accessor.Mapping;
594 string text = NextMethodName(accessor.Name);
595 ilg = new CodeGenerator(typeBuilder);
596 ilg.BeginMethod(typeof(object), text, Type.EmptyTypes, Array.Empty<string>(), MethodAttributes.Public | MethodAttributes.HideBySig);
598 ilg.Load(null);
600 MemberMapping memberMapping = new MemberMapping();
602 memberMapping.Elements = new ElementAccessor[1] { accessor };
603 Member[] array = new Member[1]
604 {
605 new Member(this, "o", "o", "a", 0, memberMapping)
606 };
607 MethodInfo method = typeof(XmlSerializationReader).GetMethod("get_Reader", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
608 MethodInfo method2 = typeof(XmlReader).GetMethod("MoveToContent", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
609 ilg.Ldarg(0);
610 ilg.Call(method);
612 ilg.Pop();
613 string elseString = "UnknownNode(null, " + ExpectedElements(array) + ");";
614 WriteMemberElements(array, "throw CreateUnknownNodeException();", elseString, accessor.Any ? array[0] : null, null);
618 ilg.EndMethod();
619 return text;
620 }
LocalBuilder DeclareLocal(Type type, string name)
void BeginMethod(Type returnType, string methodName, Type[] argTypes, string[] argNames, MethodAttributes methodAttributes)
void Call(MethodInfo methodInfo)
void Stloc(Type type, string name)
void Ldloc(LocalBuilder localBuilder)
void WriteMemberElements(Member[] members, string elementElseString, string elseString, Member anyElement, Member anyText)

References System.array, System.Xml.Serialization.CodeGenerator.BeginMethod(), System.Xml.Serialization.CodeGenerator.Call(), System.Xml.Serialization.CodeGenerator.DeclareLocal(), System.Xml.Dictionary, System.Type.EmptyTypes, System.Xml.Serialization.CodeGenerator.EndMethod(), System.Xml.Serialization.XmlSerializationReaderILGen.ExpectedElements(), System.Xml.Serialization.XmlSerializationILGen.ilg, System.Xml.Serialization.CodeGenerator.Ldarg(), System.Xml.Serialization.CodeGenerator.Ldloc(), System.Xml.Serialization.CodeGenerator.Load(), System.Xml.Serialization.XmlSerializationReaderILGen.NextMethodName(), System.Xml.Serialization.CodeGenerator.Pop(), System.Xml.Serialization.CodeGenerator.ReturnLocal, System.Xml.Serialization.CodeGenerator.Stloc(), System.text, System.Xml.Serialization.XmlSerializationILGen.typeBuilder, and System.Xml.Serialization.XmlSerializationReaderILGen.WriteMemberElements().

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