如何在c#中使用反射调用具有不同类型参数的方法
本文关键字:类型参数 方法 调用 反射 | 更新日期: 2023-09-27 18:10:58
我试图调用一个函数,使用。net反射在c#中接受两个参数(一个布尔值和一个字符串)。然而,使用下面的代码,我得到一个异常:
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)
{
...
}
你所做的似乎没有什么问题——除非问题出在"MyWS"上。我假设这门课是公开的。同时,尝试在GetMethod()中添加一些绑定标志,如
wsType.GetMethod(function, BindingFlags.Static | BindingFlags.Public | BindingFlags.Instance);