有没有办法在.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]);

.net相关问答推荐

找不到包Microsoft.VisualStudio.Azure.Containers.Tools.Targets

";Make Async ValueTask/ValueTask方法分期分配发生了什么?

MSBuild:CopyToOutputDirectory不会将本机DLL复制到输出

[x.x.x,)在Packages.lock.json依赖项中是什么意思?

SLN配置文件:映射问题

如何通过在后台预加载流项来优化流迭代的性能?

如果只有一个 : 存在于字符串中,则提取冒号后的内容

C# 中的批量更新

什么是表达式树,如何使用它们,为什么要使用它们?

您是否使用 TestInitialize 或测试类构造函数来准备每个测试?为什么?

如何防止和/或处理 StackOverflowException?

使用 IIS Express 托管网站(临时)

DBNull 的意义何在?

NuGetPackageImportStamp 有什么用?

所有数组在 C# 中都实现了哪些接口?

beforefieldinit 标志有什么作用?

嵌套的 Try/Catch 块是个坏主意吗?

为什么 !0 是 Microsoft 中间语言 (MSIL) 中的一种类型?

如何在不使用 3rd 方库的情况下登录 C#?

没有科学记数法的双精度字符串转换