有没有办法在.NET(2.0)中使用反射来调用重载方法.我有一个应用程序,它动态实例化从公共基类派生的类.为兼容起见,此基类包含两个同名的方法,一个带参数,另一个不带参数.我需要通过Invoke方法调用无参数方法.现在,我得到的只是一个错误,告诉我我正在try 调用一个模棱两可的方法.
是的,我只是将对象转换为基类的实例,并调用所需的方法.最终这种情况会发生,但现在,内部并发症将不允许这种情况发生.
任何帮助都会很好!谢谢
有没有办法在.NET(2.0)中使用反射来调用重载方法.我有一个应用程序,它动态实例化从公共基类派生的类.为兼容起见,此基类包含两个同名的方法,一个带参数,另一个不带参数.我需要通过Invoke方法调用无参数方法.现在,我得到的只是一个错误,告诉我我正在try 调用一个模棱两可的方法.
是的,我只是将对象转换为基类的实例,并调用所需的方法.最终这种情况会发生,但现在,内部并发症将不允许这种情况发生.
任何帮助都会很好!谢谢
您必须指定所需的方法:
class SomeType
{
void Foo(int size, string bar) { }
void Foo() { }
}
SomeType obj = new SomeType();
// call with int and string arguments
obj.GetType()
.GetMethod("Foo", new Type[] { typeof(int), typeof(string) })
.Invoke(obj, new object[] { 42, "Hello" });
// call without arguments
obj.GetType()
.GetMethod("Foo", new Type[0])
.Invoke(obj, new object[0]);