Track this back : http://maverick.xtorm.net/trackback/189
프로그래밍 방식으로 코드를 컴파일하는 방법
.NET Framework에서는 C#이나 VB.NET과 같은 .NET 언어 컴파일러(compiler)에 프로그래밍 방식으로 접근할 수 있도록 해주는 클래스를 제공한다. 이 클래스는 사용자가 런타임(runtime)에 작성한 코드를 즉시 작동 시킬때 유용하다.
.NET Framework에서는 ICodeCompiler 인터페이스(interface)를 통해 컴파일러에 접근할 수 있도록 하고 있다. CSharpCodeProvider, VBCodeProvider 클래스가 각각 이 인터페이스를 지원하고 있는데, 이 클래스를 통해 C# 및 VB.NET 코드를 런타임에 컴파일(compile) 할 수 있다. 본 포스팅(posting)에서는 이중 CSharpCodeProvider를 활용해 C#을 컴파일 할 수 있는 예제를 다룬다. (CSharpCodeProvider 클래스와 VBCodeProvider 클래스는 사용법이 동일하므로 C#예제를 학습하는 것 만으로도 VB.NET을 컴파일 하는데 아무런 어려움이 없을 것이다.)
1. CSharpCodeProvider를 이용해 ICodeCompiler 인터페이스의 객체를 가져온다.
CSharpCodeProvider codeProvider = new CSharpCodeProvider(); ICodeCompiler icc = codeProvider.CreateCompiler();
2. CompilerParameters 클래스를 사용해 ICodeCompiler 인터페이스 객체에 매개 변수(parameter)를 전달한다.