0

プライベート メソッドを使用してオブジェクトのプライベート メソッドを呼び出そうとしています。このメソッドは 3 つの引数を取ります。私が呼び出そうとしているメソッドの署名と、このメソッドを呼び出すコードの両方を以下に示します

プライベート メソッドの署名:

Public Class Foo
{
  private void SaveCallback(SaveAggregationViewResponse response,
                                         Action rollbackActionIfSaveFails,
                                         Action postSaveActionOnSuccess)
  {}
}

メソッドを呼び出すために使用しているコード:

var foo=new Foo()
Private pFoo=new PrivateObject(foo);
var response=new SaveAggregationViewResponse();
pFoo.Invoke("SaveCallback",new object[]{response,(Action)null,(Action)null}); //this line throws exception

例外メッセージ: メソッド'Foo.SaveCallback' not found.

プライベート メソッドを呼び出す方法に何か問題がありますか、それとも他のセットアップが間違っていますか?

ありがとうございました

4

1 に答える 1

0

オブジェクトの配列の代わりに ParamArray で呼び出してみてください

pFoo.Invoke("SaveCallback",response,null,null);

null を含めるかどうかわからない場合は、null を削除してください。

于 2015-09-24T12:50:06.793 に答える