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

◆ GenerateGetSerializer()

void System.Xml.Serialization.XmlSerializationCodeGen.GenerateGetSerializer ( Hashtable serializers,
XmlMapping[] xmlMappings )
inlineprivateinherited

Definition at line 329 of file XmlSerializationCodeGen.cs.

330 {
331 _writer.Write("public override ");
332 _writer.Write(typeof(XmlSerializer).FullName);
333 _writer.Write(" GetSerializer(");
335 _writer.WriteLine(" type) {");
336 _writer.Indent++;
337 for (int i = 0; i < xmlMappings.Length; i++)
338 {
339 if (xmlMappings[i] is XmlTypeMapping)
340 {
341 Type type = xmlMappings[i].Accessor.Mapping.TypeDesc.Type;
342 if (!(type == null) && (type.IsPublic || type.IsNestedPublic) && !DynamicAssemblies.IsTypeDynamic(type) && !type.IsGenericType && (!type.ContainsGenericParameters || !DynamicAssemblies.IsTypeDynamic(type.GetGenericArguments())))
343 {
344 _writer.Write("if (type == typeof(");
345 _writer.Write(CodeIdentifier.GetCSharpName(type));
346 _writer.Write(")) return new ");
347 _writer.Write((string)serializers[xmlMappings[i].Key]);
348 _writer.WriteLine("();");
349 }
350 }
351 }
352 _writer.WriteLine("return null;");
353 _writer.Indent--;
354 _writer.WriteLine("}");
355 }

References System.Xml.Serialization.XmlSerializationCodeGen._writer, System.Xml.Dictionary, System.FullName, System.Xml.Serialization.CodeIdentifier.GetCSharpName(), System.Xml.Serialization.IndentedWriter.Indent, System.Xml.Serialization.DynamicAssemblies.IsTypeDynamic(), System.type, System.Xml.Serialization.IndentedWriter.Write(), and System.Xml.Serialization.IndentedWriter.WriteLine().

Referenced by System.Xml.Serialization.XmlSerializationCodeGen.GenerateSerializerContract().