0
たとえば、ソースコードが文字列に含まれているとします。プロキシメソッドを作成するソースコードを生成するには?
string source =
"var watch = new System.Diagnostics.Stopwatch();
var stack = new Stack<string>();
var list = new List<string>() { };
watch.Start();";
source = Emit(source);
私はこれは、いくつかの難読化ツールに実装され、そしてプロキシメソッドか何かと呼ばれる私が覚えていればされ、それがインライン化とは正反対である。放出されたソースは
var watch = A();
var stack = B();
var list = C();
D(watch);
System.Diagnostics.Stopwatch A()
{
return new System.Diagnostics.Stopwatch();
}
Stack<string> B()
{
return new Stack<string>();
}
List<string> C()
{
return new List<string>();
}
void D(System.Diagnostics.Stopwatch a)
{
a.Start();
}
ような何かになりたいですこれを実装する正しい方法は何でしょうか?表現木? RoslynまたはSystem.Codedomまたは他のライブラリ?
私はロザリンが最善の策だと言います。あなたはソースの個々の部分で簡単に作業できるように、文字列をASTに解析します(後述のように)。 – wablab