Invoke()
对象上的MethodInfo
函数接受object[]
参数。我希望能够发送一个JSON编码的字符串。有没有办法做到这一点?
我所依据的代码来自this MSDN page
....
object wsvcClass = results.CompiledAssembly.CreateInstance(serviceName);
MethodInfo mi = wsvcClass.GetType().GetMethod(methodName);
//args in this case is an object[]. any way to pass a string?
return mi.Invoke(wsvcClass, args);
我知道Newtonsoft提供了一种反序列化字符串的方法,但是它可以这样做到object[]
吗?还是有另一种方法可以做到这一点?
答案 0 :(得分:1)
您正在查看的方法签名使用Object[]
表示方法中的所有参数。例如:
public void DoStuff(string x, string y, int b);
可以像这样调用:
methodInfo.Invoke(wscvClass, new object[] { "x", "y string", 500 });
因此,在您的情况下,您应该可以使用以下方式致电Invoke
string jsonEncodedString = "{ }"; // whatever you need to do to get this value
mi.Invoke(wsvcClass, new object[] { jsonEncodedString });