Создать объект Class из строки, содержащей исходный код
Я создаю приложение C#, в котором код компилируется во время выполнения, код содержится в строке (и строка получает свое значение из элемента управления ScintillaNET, она просто возвращает текст, строка с кодом работает так, как задумано).
Мой вопрос: есть ли способ сделать какой-то объект класса из этого исходного кода во время выполнения? Например, строка содержит это значение:
namespace _Testing {
class Program {
static void Main(string[] args) {
Console.Title = "Program";
Console.WriteLine("If you can read this, it's all good!");
Console.ReadKey();
}
}
}
Этот код компилируется моим компилятором CSharpCodeProvider во время выполнения (с CompileAssemblyFromSourceBatch - потому что я передаю массив классов для компиляции). Тем не менее, я хочу иметь возможность устанавливать свойство MainClass компилятора во время выполнения, и для этого необходимо получить пространство имен из классов.
Поэтому я думал о создании какого-либо объекта для каждой строки исходного кода класса, который позволит мне достичь своей цели. Любые другие идеи, конечно, тоже приветствуются.
1 ответ
Вам не нужен CSharpCodeProver для компиляции и загрузки динамического кода. В вашем случае я бы рекомендовал использовать DLR (не CLR) из.Net Framework.
Или вы можете взглянуть на .NET-Compiler-Plattform
То, что вы пытаетесь, не сработает.