私には2つの非常に単純なメソッドがあり、そのうちの1つは呼び出すことができ、もう1つは例外が見つからない場合に発生します。メソッドは次のとおりです。
class SimClass
{
public int GeneralMethod1(int a)
{
return a;
}
public int GeneralMethod2(Input input)
{
return input.Numberi;
}
}
class Input
{
public int Numberi { get; set; }
}
私は単に「GeneralMethod1」を呼び出すことができます:
Assembly assembly = Assembly.LoadFrom("C:\\Amir\\SimFIle.dll");
Type type = assembly.GetType("SimFIle.SimClass");
object instanceOfMyType = Activator.CreateInstance(type);
object[] Args1 = new object[1]; Args1[0] = -1;
object result = type.InvokeMember("GeneralMethod1",
BindingFlags.Default | BindingFlags.InvokeMethod,
null,
instanceOfMyType,
Args1);
しかし、「GeneralMethod2」の呼び出しに問題があります。
Input input = new Input { Numberi = -5};
object[] Args2 = new object[1]; Args2[0] = input;
object output = type.InvokeMember("GeneralMethod2",
BindingFlags.Default | BindingFlags.InvokeMethod,
null,
instanceOfMyType,
Args2);
私の間違いは何ですか?