3

有一些 .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();
    }
}
4

1 回答 1

3

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

拥有 后MethodInfo,您可以只使用Invoke,也可以使用Delegate.CreateDelegate来获取可以重复使用的类型化委托。这取决于您调用它的频率,以及哪个更可取。

于 2013-02-25T11:32:54.927 回答