私は、leppieの基本的な提案を使用して、その結果を外部アセンブリに出力しました。次に、リフレクターを使用してメソッドを抽出し、それを自分のコードに貼り付けました。それから私はペーストされた方法を実行し、何がされていたかチェックした。これは100%の正確さではないかもしれませんが、少なくとも示唆を与えます。ここで
は(結果のアセンブリが実行可能ファイルと同じディレクトリに終わる)メソッドを書くためのいくつかのコードです:
/// <summary>
/// Writes an assembly, containing the given method, to the working directory.
/// The assembly, type, and method are named based on the given hash name.
/// </summary>
public static void WriteMethodToAssembly<T>(Expression<T> method, string hashName) {
var assemblyName = new AssemblyName(hashName);
var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave);
var moduleBuilder = assemblyBuilder.DefineDynamicModule(assemblyName.Name, assemblyName.Name + ".dll");
var typeBuilder = moduleBuilder.DefineType(hashName, TypeAttributes.Public);
var methodBuilder = typeBuilder.DefineMethod("Run" + hashName, MethodAttributes.Public | MethodAttributes.Static);
method.CompileToMethod(methodBuilder);
typeBuilder.CreateType();
assemblyBuilder.Save(hashName + ".dll");
}
あなたがアセンブリを持っていたら、メソッドを抽出するために、反射鏡のようなツールを使用することができます。
共有ありがとう:) – leppie