Я разрабатываю своего рода механизм правил, где пользователи определяют правило как набор условий и действий. Эти условия и действия затем анализируются в коде для выполнения. Я могу генерировать код без каких-либо проблем. Я застрял в момент его компиляции и загрузки класса.
Как взять строку динамически сгенерированного исходного кода и скомпилировать ее во время выполнения?
Как я могу выполнить этот код?
Я предполагаю, что у меня будет статический список правил, который будет обновляться по мере добавления правил. Что-то вроде:
static Dictionary<string, Rule> Rules { get; set; }
static void RefreshRules ()
{
var newRules = DataLayer.GetRules().Where(r => !this.Rules.ContainsKey(r.Name));
foreach (var rule in newRules)
{
this.Rules[rule.Name] = CompileRule(rule.Code);
}
}
Или я бы перекомпилировал сборку и затем перезагрузил ее в уже работающее приложение?