我有一个方法如下图...
public bool MakeRequest(string[] args)
{
try
{
sXmlRequest = args[0];
sResponse = "";
Console.WriteLine(sXmlRequest);
sw.Write(sXmlRequest);
sw.Flush();
sResponse = sr.ReadToEnd();
return true;
}
catch (Exception e)
{
sResponse = e.Message;
return false;
}
}
由于整个框架的设置方式,我必须使用反射调用此方法。
这是我用来调用它的代码
string[] innerargs = {"Dummy Args"};
string pAssembly = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TCPConnector.dll";
Assembly assemblyInstance = Assembly.LoadFrom(pAssembly);
Type tConnector = assemblyInstance.GetType("Fit.TcpConnector");
Object oLateBound = assemblyInstance.CreateInstance(tConnector.FullName);
result = tConnector.InvokeMember("MakeRequest", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Instance, null, oLateBound, innerargs);
这返回了 MissingMethodException,说找不到 Fit.TcpConnector.MakeRequest 方法。
但是,如果我将 MakeRequest 的签名更改为
public bool MakeRequest(string args)
代替
public bool MakeRequest(string[] args)
然后,它正在工作。任何人都可以在调用以数组作为参数的函数时指出我正确的方向吗?