假设我在字符串中有一些源代码,例如
display_list
我希望发出的源类似于
string source =
"var watch = new System.Diagnostics.Stopwatch();
var stack = new Stack<string>();
var list = new List<string>() { };
watch.Start();";
source = Emit(source);
这在一些混淆器中实现,如果我记得被称为代理方法或其他东西,它与内联完全相反。实现这个的正确方法是什么?表达树木? Roslyn或System.Codedom或其他一些库?
答案 0 :(得分:0)
通常,您没有代码作为字符串,而是作为AST(抽象语法树)构建的类型来自您选择的编译器/代码生成库。
这样的AST可以轻松修改,因为它是一个有组织的数据结构而不是字符串。