两个方法返回不带参数的不同类型,如何调用?

时间:2013-02-25 11:30:40

标签: c# .net visual-studio obfuscation ambiguity

有一些.net Dll库,这个Dll包含一个带有两个同名方法的类,例如:

void b()
{

}

bool b()
{

}

在C#中是不可能的,但内部似乎没问题,在添加这样的库时如何从代码中调用一个方法?

我需要最简单的方法,我知道使用反射是可以的,但还有其他更简单的方法吗?

*的 修改 *

我在图书馆的元数据中得到这个:

#region Assembly XXXX.dll, v xxxx
// C:\....................
#endregion


namespace XXXX.YYYYY
{
    public class a : IDisposable
    {

        .
        .
        .
        .
        .
        public void b();
        public bool b();
        .
        .
        .
        .
        public void Dispose();
    }
}

1 个答案:

答案 0 :(得分:3)

哦,那太可怕了。你可以从C#调用它的唯一方法是通过反射;你可能需要使用GetMethods()并从数组中找到你想要的那个(GetMethod()重载可能不喜欢它。)

获得MethodInfo后,您可以使用Invoke,也可以使用Delegate.CreateDelegate获取可以重复使用的类型代理。这取决于您调用它的频率,以及哪些更可取。