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

◆ GenerateBaseSerializer()

string System.Xml.Serialization.XmlSerializationILGen.GenerateBaseSerializer ( string baseSerializer,
string readerClass,
string writerClass,
CodeIdentifiers classes )
inlinepackageinherited

Definition at line 265 of file XmlSerializationILGen.cs.

266 {
267 baseSerializer = CodeIdentifier.MakeValid(baseSerializer);
269 TypeBuilder typeBuilder = CodeGenerator.CreateTypeBuilder(_moduleBuilder, CodeIdentifier.GetCSharpName(baseSerializer), TypeAttributes.Public | TypeAttributes.Abstract | TypeAttributes.BeforeFieldInit, typeof(XmlSerializer), Type.EmptyTypes);
270 ConstructorInfo constructor = CreatedTypes[readerClass].GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
271 ilg = new CodeGenerator(typeBuilder);
272 ilg.BeginMethod(typeof(XmlSerializationReader), "CreateReader", Type.EmptyTypes, Array.Empty<string>(), MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig);
274 ilg.EndMethod();
275 ConstructorInfo constructor2 = CreatedTypes[writerClass].GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
276 ilg.BeginMethod(typeof(XmlSerializationWriter), "CreateWriter", Type.EmptyTypes, Array.Empty<string>(), MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig);
278 ilg.EndMethod();
281 CreatedTypes.Add(type.Name, type);
282 return baseSerializer;
283 }
void Add(TKey key, TValue value)
ConstructorBuilder DefineDefaultConstructor(MethodAttributes attributes)
virtual Type AsType()
Definition TypeInfo.cs:106
void New(ConstructorInfo constructorInfo)
void BeginMethod(Type returnType, string methodName, Type[] argTypes, string[] argNames, MethodAttributes methodAttributes)

References System.Xml.Serialization.XmlSerializationILGen._moduleBuilder, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.Reflection.TypeInfo.AsType(), System.Xml.Serialization.CodeGenerator.BeginMethod(), System.Xml.Serialization.XmlSerializationILGen.CreatedTypes, System.Xml.Serialization.CodeGenerator.CreateTypeBuilder(), System.Reflection.Emit.TypeBuilder.CreateTypeInfo(), System.Reflection.Emit.TypeBuilder.DefineDefaultConstructor(), System.Xml.Dictionary, System.Type.EmptyTypes, System.Xml.Serialization.CodeGenerator.EndMethod(), System.Xml.Serialization.CodeIdentifier.GetCSharpName(), System.Xml.Serialization.XmlSerializationILGen.ilg, System.Xml.Serialization.CodeIdentifier.MakeValid(), System.Xml.Serialization.CodeGenerator.New(), System.type, and System.Xml.Serialization.XmlSerializationILGen.typeBuilder.