9
C#メソッドのコンテンツを動的に置き換えますか?
私がやりたいのは、C#メソッドが呼び出されたときの実行方法を変更して、次のようなものを書けるようにすることです。 [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n - 1; m += 1) if (m % n == 0) return false; return true; } 実行時に、Distributed属性を持つメソッド(既に実行可能)を分析し、関数の本体が実行される前と関数が戻った後にコードを挿入できるようにする必要があります。さらに重要なことに、Solveが呼び出されるコードを変更することなく、または関数の開始時に(コンパイル時に、実行時に実行することが目的です)コードを変更せずにそれを実行できるようにする必要があります。 現時点で私はこのコードを試してみました(tはSolveが格納されている型であり、mはSolveのMethodInfoであると想定しています)。 private void WrapMethod(Type t, MethodInfo m) { // Generate ILasm for delegate. byte[] il = …
108
c#
methods
assemblies
cil
swap