System.Xml.Serialization.XmlSerializationCodeGen.GenerateBaseSerializer C# (CSharp) Method

GenerateBaseSerializer() private method

private GenerateBaseSerializer ( string baseSerializer, string readerClass, string writerClass, CodeIdentifiers classes ) : string
baseSerializer string
readerClass string
writerClass string
classes CodeIdentifiers
return string
        internal string GenerateBaseSerializer(string baseSerializer, string readerClass, string writerClass, CodeIdentifiers classes)
        {
            baseSerializer = CodeIdentifier.MakeValid(baseSerializer);
            baseSerializer = classes.AddUnique(baseSerializer, baseSerializer);

            _writer.WriteLine();
            _writer.Write("public abstract class ");
            _writer.Write(CodeIdentifier.GetCSharpName(baseSerializer));
            _writer.Write(" : ");
            _writer.Write(typeof(XmlSerializer).FullName);
            _writer.WriteLine(" {");
            _writer.Indent++;

            _writer.Write("protected override ");
            _writer.Write(typeof(XmlSerializationReader).FullName);
            _writer.WriteLine(" CreateReader() {");
            _writer.Indent++;
            _writer.Write("return new ");
            _writer.Write(readerClass);
            _writer.WriteLine("();");
            _writer.Indent--;
            _writer.WriteLine("}");

            _writer.Write("protected override ");
            _writer.Write(typeof(XmlSerializationWriter).FullName);
            _writer.WriteLine(" CreateWriter() {");
            _writer.Indent++;
            _writer.Write("return new ");
            _writer.Write(writerClass);
            _writer.WriteLine("();");
            _writer.Indent--;
            _writer.WriteLine("}");

            _writer.Indent--;
            _writer.WriteLine("}");

            return baseSerializer;
        }