private static void GenerateSerializers( IList <string> sourceFilePathes, string[] referenceAssemblies, bool sourceFileIsAssembly, string includingPattern, string excludingPattern, bool treatWarningsAsErrors, int warningLevel, bool admitNonPublicTypes, SerializerCodeGenerationConfiguration configuration ) { if (sourceFilePathes == null || sourceFilePathes.Count == 0) { throw new ArgumentException("Source files or a source assembly is required."); } var generator = new SerializerCodeGenerator(configuration); IEnumerable <string> result; if (!sourceFileIsAssembly) { result = generator.GenerateSerializers( new SerializerTargetCompiler { TreatWarningsAsErrors = treatWarningsAsErrors, WarningLevel = warningLevel }.CompileTargetTypeAssembly( sourceFilePathes, referenceAssemblies ?? new string[0] ), includingPattern, excludingPattern, admitNonPublicTypes ); } else { result = generator.GenerateSerializers( sourceFilePathes[0], includingPattern, excludingPattern, admitNonPublicTypes ); } foreach (var outputFilePath in result) { Console.WriteLine(outputFilePath); } }
private static void GenerateSerializers( IList<string> sourceFilePathes, string[] referenceAssemblies, bool sourceFileIsAssembly, string includingPattern, string excludingPattern, bool treatWarningsAsErrors, int warningLevel, SerializerCodeGenerationConfiguration configuration ) { if ( sourceFilePathes == null || sourceFilePathes.Count == 0 ) { throw new ArgumentException( "Source files or a source assembly is required." ); } var generator = new SerializerCodeGenerator( configuration ); IEnumerable<string> result; if ( !sourceFileIsAssembly ) { result = generator.GenerateSerializers( new SerializerTargetCompiler { TreatWarningsAsErrors = treatWarningsAsErrors, WarningLevel = warningLevel }.CompileTargetTypeAssembly( sourceFilePathes, referenceAssemblies ?? new string[ 0 ] ), includingPattern, excludingPattern ); } else { result = generator.GenerateSerializers( sourceFilePathes[ 0 ], includingPattern, excludingPattern ); } foreach ( var outputFilePath in result ) { Console.WriteLine( outputFilePath ); } }