有没有办法在.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相关问答推荐

在PowerShell中,XML子对象和属性是对象属性.它怎麽工作?

.NET Core 中的微服务

C# 的部分类是糟糕的设计吗?

指定的版本字符串不符合要求的格式 - major[.minor[.build[.revision]]]

如何防止和/或处理 StackOverflowException?

为什么要判断这个!= null?

从 Web.Config 中的邮箱友好显示名称存储 Smtp

我应该在 LINQ 查询中使用两个where子句还是&&?

C# 测试字符串是否为整数?

关于 Enumerable.Range 与传统 for 循环的 foreach 的思考

如何在多个解决方案之间共享相同的 Resharper 设置,无需人工干预?

覆盖 ASP.NET MVC 中的授权属性

Visual Studio 类图不显示关系

如何仅在需要时提升权限?

静态方法继承的正确替代方法是什么?

ConfigurationManager.AppSettings - 如何修改和保存?

.NET 中的 java.lang.IllegalStateException?

我可以将构造函数参数传递给 Unity 的 Resolve() 方法吗?

如何判断uri字符串是否有效

有没有一种简单的方法来判断 .NET Framework 版本?