C# 使用PrivateObject.Invoke调用静态转换函数在单元测试中不起作用

C# 使用PrivateObject.Invoke调用静态转换函数在单元测试中不起作用,c#,privateobject.invoke,C#,Privateobject.invoke,方法: private static HipKvp[] GetRequestParameterArray(CaptchaRequestModel request){} HipKvp[] input = (HipKvp[])privObj.Invoke("GetRequestParameterArray", new CaptchaRequestModel[] { result }); 单元测试: private static HipKvp[] GetRequestParameter

方法:

  private static HipKvp[] GetRequestParameterArray(CaptchaRequestModel request){}
  HipKvp[] input = (HipKvp[])privObj.Invoke("GetRequestParameterArray", new CaptchaRequestModel[] { result });
单元测试:

  private static HipKvp[] GetRequestParameterArray(CaptchaRequestModel request){}
  HipKvp[] input = (HipKvp[])privObj.Invoke("GetRequestParameterArray", new CaptchaRequestModel[] { result });
例外情况:

MissingMethodException was unhandled by user code:
Attempted to access a missing member.
我试过不同的方法,但都不管用

PrivateObject.Invoke(String,Object[])
不涉及静态成员,可能是因为这些成员不一定属于对象,而是属于类

您需要在第二个参数中使用并指定
BindingFlags.NonPublic | BindingFlags.Static
,如下所示:

HipKvp[] input = (HipKvp[])privObj.Invoke("GetRequestParameterArray", BindingFlags.NonPublic | BindingFlags.Static, new CaptchaRequestModel[] { result });
知道。检查拼写和对象类型。检查此链接-并尝试传递绑定标志;