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

◆ GenerateSupportedTypes()

void System.Xml.Serialization.XmlSerializationCodeGen.GenerateSupportedTypes ( Type[] types)
inlinepackageinherited

Definition at line 184 of file XmlSerializationCodeGen.cs.

185 {
186 _writer.Write("public override ");
188 _writer.Write(" CanSerialize(");
190 _writer.WriteLine(" type) {");
191 _writer.Indent++;
192 Hashtable hashtable = new Hashtable();
193 foreach (Type type in types)
194 {
195 if (!(type == null) && (type.IsPublic || type.IsNestedPublic) && hashtable[type] == null && !DynamicAssemblies.IsTypeDynamic(type) && !type.IsGenericType && (!type.ContainsGenericParameters || !DynamicAssemblies.IsTypeDynamic(type.GetGenericArguments())))
196 {
197 hashtable[type] = type;
198 _writer.Write("if (type == typeof(");
199 _writer.Write(CodeIdentifier.GetCSharpName(type));
200 _writer.WriteLine(")) return true;");
201 }
202 }
203 _writer.WriteLine("return false;");
204 _writer.Indent--;
205 _writer.WriteLine("}");
206 }

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().