NArrange.Tests.CSharp.CSharpTestFile.Compile C# (CSharp) Method

Compile() public static method

Compiles C# source code.
public static Compile ( string source, bool targetCSharp6 = false ) : CompilerResults
source string The source.
targetCSharp6 bool
return System.CodeDom.Compiler.CompilerResults
        public static CompilerResults Compile(string source, bool targetCSharp6 = false)
        {
            //
            // Compile the test source file
            //

            CompilerParameters parameters = new CompilerParameters();

            parameters.GenerateInMemory = true;
            parameters.GenerateExecutable = false;
            parameters.CompilerOptions = "/unsafe";

            parameters.ReferencedAssemblies.Add("mscorlib.dll");
            parameters.ReferencedAssemblies.Add("System.dll");
            parameters.ReferencedAssemblies.Add("System.Data.dll");
            parameters.ReferencedAssemblies.Add("System.Xml.dll");
            parameters.ReferencedAssemblies.Add("System.Core.dll");

            var provider = targetCSharp6 ?
                new Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider() :
                CSharpCodeProvider.CreateProvider("CSharp");

            return provider.CompileAssemblyFromSource(parameters, source);
        }

Usage Example

Example #1
0
        private static bool Compile(string tempFile)
        {
            var results = CSharpTestFile.Compile(File.ReadAllText(tempFile), true);

            if (results.Errors.Count > 0)
            {
                CompilerError error = null;

                error = TestUtilities.GetCompilerError(results);

                if (error != null)
                {
                    string messageFormat =
                        "Test source code should not produce compiler errors. " +
                        "Error: {0} - {1}, line {2}, column {3} ";
                    Assert.Fail(
                        messageFormat,
                        error.ErrorText,
                        tempFile,
                        error.Line,
                        error.Column);
                }
                return(false);
            }
            return(true);
        }
All Usage Examples Of NArrange.Tests.CSharp.CSharpTestFile::Compile