2012-04-27 24 views
1

使用的CodeDOM我能夠編譯我寫在一個單獨的文件的源代碼:CompileAssemblyFromFile:我可以在豐富的文本框中給源代碼嗎?

CompilerResults results = codeCompiler.CompileAssemblyFromFile(parameters, @"C:\MyScript.cs"); 
    results.CompiledAssembly.GetType("Script").GetMethod("Main").Invoke(null, null); 

有沒有一種方式,而不是讀取源代碼從一個文件 - MyScript.cs - 這樣我就可以在表單上放置一個富文本框並將代碼放在那裏?

+0

你爲什麼不想要使用的文件,並從中讀取? – 2012-04-27 20:48:42

+0

@AntonioBakula:項目要求! :( – Bohn 2012-04-27 20:51:01

回答

2

查看CSharpCodeProvider的文檔:它包含一個方法CompileAssemblyFromSource(),它接受一個或多個包含要編譯的代碼的字符串。

所以,你的代碼可能是這樣的:

CompilerResults results = codeCompiler.CompileAssemblyFromSource(
    parameters, codeFromTextBox);