1 // ****************************************************************
\r
2 // Copyright 2007, Charlie Poole
\r
3 // This is free software licensed under the NUnit license. You may
\r
4 // obtain a copy of the license at http://nunit.org/?p=license&r=2.4
\r
5 // ****************************************************************
\r
8 using System.CodeDom.Compiler;
\r
10 namespace NUnit.Fixtures
\r
13 /// Summary description for CSharpCompiler.
\r
15 public class TestCompiler
\r
17 ICodeCompiler compiler;
\r
18 CompilerParameters options;
\r
20 public TestCompiler() : this( null, null ) { }
\r
22 public TestCompiler( string[] assemblyNames ) : this( assemblyNames, null ) { }
\r
24 public TestCompiler( string[] assemblyNames, string outputName )
\r
26 Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
\r
27 this.compiler = provider.CreateCompiler();
\r
28 this.options = new CompilerParameters();
\r
30 if ( assemblyNames != null && assemblyNames.Length > 0 )
\r
31 options.ReferencedAssemblies.AddRange( assemblyNames );
\r
32 if ( outputName != null )
\r
33 options.OutputAssembly = outputName;
\r
35 options.IncludeDebugInformation = false;
\r
36 options.TempFiles = new TempFileCollection( ".", false );
\r
37 options.GenerateInMemory = false;
\r
40 public CompilerParameters Options
\r
42 get { return options; }
\r
45 public CompilerResults CompileCode( string code )
\r
47 return compiler.CompileAssemblyFromSource( options, code );
\r