Как выполнить код, сгенерированный codeDom? - PullRequest
0 голосов
/ 22 июля 2010

Я только что сгенерировал файл .cs, используя codeDom.Может кто-нибудь объяснить, как мне его выполнить?

Ответы [ 2 ]

1 голос
/ 30 марта 2011

Приведенный ниже код позволит вам скомпилировать код с использованием кодировки, а затем вы сможете показать пользователю, правильно ли скомпилирован код или нет. Он даже создает DLL.

Спасибо Alex

// Store provider from the method into a object, Default is CSharpCodeProvider**
CodeDomProvider provider = this.GetCurrentProvider();

// Configure a CompilerParameters that links System.dll**
String[] referenceAssemblies = { "System.dll", "System.Data.Linq.dll", "System.Web.dll","System.XML.dll","System.ComponentModel.DataAnnotations.dll", "System.Data.dll", _mvcLocation };

CompilerParameters cp = new CompilerParameters(referenceAssemblies, this.fileLocation + this.fileName + ".dll", false);

// Generate an executable rather than a DLL file.**

cp.GenerateExecutable = true;

// Invoke compilation.**
CompilerResults _results = provider.CompileAssemblyFromFile(cp, this.fileLocation + this.fileName + "." + this.extention);
0 голосов
/ 22 июля 2010

Это не так просто. Смотрите здесь для начинающих. В основном, CodeDom поддерживает такие сценарии, как генерация кода и динамическая компиляция . Таким образом, файлы .cs, созданные с помощью CodeDom, не являются исполняемыми файлами в обычном смысле.

...