Создать объект 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

То, что вы пытаетесь, не сработает.

Другие вопросы по тегам