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 });
知道。检查拼写和对象类型。检查此链接-并尝试传递绑定标志;