Как я могу написать код C # для компиляции и запуска динамически сгенерированного кода C #. Есть ли примеры вокруг?
Я хочу динамически создать класс (или классы) C # и запускать их во время выполнения. Я хочу, чтобы сгенерированный класс взаимодействовал с другими классами C #, которые не являются динамическими.
Я видел примеры, которые генерируют файлы exe или dll. Я не после этого, я просто хочу, чтобы он скомпилировал код C # в памяти и затем запустил его. Например,
Так вот класс, который не является динамическим, он будет определен в моей сборке C # и будет меняться только во время компиляции,
public class NotDynamicClass
{
private readonly List<string> values = new List<string>();
public void AddValue(string value)
{
values.Add(value);
}
public void ProcessValues()
{
// do some other stuff with values
}
}
Вот мой класс, который динамичен. Мой код C # сгенерирует этот класс и запустит его,
public class DynamicClass
{
public static void Main()
{
NotDynamicClass class = new NotDynamicClass();
class.AddValue("One");
class.AddValue("two");
}
}
Таким образом, в результате мой не динамический код вызвал бы ProcessValues, и это сделало бы некоторые другие вещи. Смысл динамического кода заключается в том, чтобы позволить нам или клиенту добавить собственную логику в программное обеспечение.
Спасибо.