0

私は式 (Microsoft.Scripting.Ast) を試していて、デリゲートを含むデリゲート変数を別のインスタンス メソッドに割り当ててから、そのデリゲートを呼び出す必要があります。残念ながら、私は非常に無知です:(

var @delegate = Expression.Variable (typeof (Delegate));
var expression = Expression.Block(
     new [] { @delegate },
     Expression.Assign(@delegate, /* MISSED PART */),
     Expression.Call(@delegate, typeof(Delegate).GetMethod("DynamicInvoke"))
);

何か見逃したことがあれば教えてください。これは私が最近始めたインターンシップのためのものです。なので意味不明かもしれません(^^)

4

1 に答える 1

0

答えはExpression.GetDelegateType(...)

のデリゲートを作成するコード スニペットを次に示しますMethodInfo

public static Type GetDelegateType (this MethodInfo methodInfo)
{
  var parameterTypes = methodInfo.GetParameters ().Select (x => x.ParameterType);
  var returnType = new[] { methodInfo.ReturnType };

  var delegateTypes = parameterTypes.Concat (returnType).ToArray ();
  return Expression.GetDelegateType (delegateTypes);
} 
于 2012-07-02T10:04:14.983 に答える