利用传入的Type类型来调用范型方法的解决方案

利用传入的Type类型来调用范型方法的解决方案

起因:自定义一个GridView控件,其数据源来源于一个通用方法Get(),根据你传入的T到数据库中得到相应的数据,问题是定义GridView控件时没法在界面端设置使用泛型,只能在每个使用这个GridView控件时绑定数据。如果你没看懂这个起因也没关系,我们用一段代码来描述一下问题:
我希望使用的是从外边传过来的类型tt来调用test1范型方法

复制代码

class Program
{
static void Main(string[] args)
{
MyClass m = new MyClass();
m.tt = typeof(Program);
m.test2();
}

}   

class MyClass   
{   
    public Type tt { get; set; }   
    public int userid { get; set; }   
    public string Name { get; set; }   
    public string test2()   
    {   
      // test1 <T>();   
      我希望使用的是从外边传过来的类型tt来调用test1范型方法   
    }   
    public string test1 <T>()   
    {   
        return typeof(T).ToString();   
    }   
      
} 

复制代码

解决方案:

复制代码

class MyClass
{
public Type tt { get; set; }
public int userid { get; set; }
public string Name { get; set; }
public string test2()
{
object result = typeof(MyClass).GetMethod(“test1”).
MakeGenericMethod(tt).Invoke(this, null);
return result.ToString();
}
public string test1()
{
return typeof(T).ToString();
}

} 

复制代码

内容分享自:http://www.cnblogs.com/nuaalfm/archive/2009/02/24/1397340.html 谢谢。


利用传入的Type类型来调用范型方法的解决方案
https://www.dearcloud.cn/2015/04/27/20200310-cnblogs-old-posts/20150427-利用传入的Type类型来调用范型方法的解决方案/
作者
宋兴柱
发布于
2015年4月27日
许可协议