我正在尝试使用C#中的.NET反射调用一个带有两个参数(布尔值和字符串)的函数。但是,使用以下代码我得到一个例外:
object[] paramList = new object[] { true, "Foo" };
Type wsType = typeof(MyWS);
MyWS inst = (MyWS)Activator.CreateInstance(wsType);
MethodInfo method = wsType.GetMethod(function); // function = the name of the function to be called
method.Invoke(inst, paramList);
抛出一个ArrayTypeMismatchException(“试图以与数组不兼容的类型访问元素。”)。
似乎paramList导致异常,但我不明白为什么?
我试图调用的函数类似于:
public bool EnableSchedule(bool enable, string password)
{
...
}
答案 0 :(得分:0)
似乎你所做的事情没有任何问题 - 除非问题在于“MyWS”。我认为这堂课是公开的。 同时,尝试向GetMethod()添加一些绑定标志,如
wsType.GetMethod(function, BindingFlags.Static | BindingFlags.Public | BindingFlags.Instance);