私有对象“试图访问丢失的成员”异常

问题描述 投票:0回答:1

我正在尝试使用私有方法调用对象的私有方法。此方法采用三个参数。我尝试调用的方法签名和调用此方法的代码如下所示

私有方法签名:

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.

我调用私有方法的方式有问题还是其他设置有问题?

谢谢

c# .net private-members privateobject.invoke
1个回答
0
投票

尝试使用 ParamArray 而不是对象数组来调用它

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

不确定是否包含空值,如果不起作用则将其删除。

© www.soinside.com 2019 - 2024. All rights reserved.