c#引用所需的重载通用方法

特定
public Class Example
{

public static void Foo< T>(int ID){}

public static void Foo< T,U>(int ID){}

}

问题:

调用这个“重载通用方法”是否正确?
>如何在创建MethodInfo对象时指定任一方法

Type exampleType = Type.GetType("fullyqualifiednameOfExample,namespaceOfExample");
MethodInfo mi = exampleType.getmethod("Foo",BindingFlags.Public|BindingFlags.Static,null,new Type[] {typeof(Type),typeof(Type) },null);

参数4导致编译器非常不满

解决方法

我找不到一种使用getmethod方法,它会做你想要的.但是您可以获得所有的方法并浏览列表,直到找到所需的方法.

记住你需要调用MakeGenericmethod才能实际使用它.

var allMethods = typeof (Example).getmethods(BindingFlags.Public | BindingFlags.Static);
MethodInfo foundMi = allMethods.FirstOrDefault(
    mi => mi.Name == "Foo" && mi.GetGenericArguments().Count() == 2);
if (foundMi != null)
{
    MethodInfo closedMi = foundMi.MakeGenericmethod(new Type[] {typeof (int),typeof (string)});
    Example example= new Example();
    closedMi.Invoke(example,new object[] { 5 });
}

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...