gil*_*ly3 2 c# code-generation metaprogramming
我正在开发一种规则引擎,用户将规则定义为一组条件和操作.然后将这些条件和操作解析为要执行的代码.我能够毫无问题地生成代码.我坚持编译它然后加载类.
如何获取一串动态生成的源代码并在运行时编译它?
那我怎么能执行那段代码呢?
我设想能够有一个静态的规则列表,这些规则将在添加规则时更新.就像是:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
或者我会重新编译一个程序集,然后将其重新加载到我已经运行的应用程序中?
归档时间: |
|
查看次数: |
3935 次 |
最近记录: |