私は以下に示すような方法を持っています...
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;
}
}
フレームワーク全体のセットアップ方法のため、Reflection を使用してこのメソッドを呼び出す必要があります。
ここに私がそれを呼び出すために使用しているコードがあります
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);
これは、メソッド Fit.TcpConnector.MakeRequest が見つからないという MissingMethodException を返しています。
ただし、MakeRequest の署名を次のように変更すると、
public bool MakeRequest(string args)
それ以外の
public bool MakeRequest(string[] args)
その後、それは働いています。配列をパラメーターとして受け取る関数を呼び出す際に、誰かが私を正しい方向に向けることができますか?