Skip to content

Instantly share code, notes, and snippets.

@lmatt-bit
Created August 13, 2014 07:34
Show Gist options
  • Select an option

  • Save lmatt-bit/703b41afa35d47862af0 to your computer and use it in GitHub Desktop.

Select an option

Save lmatt-bit/703b41afa35d47862af0 to your computer and use it in GitHub Desktop.
Use CSharpCodeProvider to build code at runtime
using (var codeProvider = new CSharpCodeProvider())
{
var parameters = new CompilerParameters { GenerateExecutable = false, GenerateInMemory = true };
parameters.ReferencedAssemblies.Add("some.dll");
var results = codeProvider.CompileAssemblyFromFile(parameters, fileList);
if (results.Errors.Count > 0)
{
var errorString = new StringBuilder();
for (int i = 0; i < results.Errors.Count; i++)
{
errorString.AppendFormat("{0}{1}", results.Errors[i], Environment.NewLine);
}
throw new DataException(errorString.ToString());
}
else
{
assembly = results.CompiledAssembly;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment