关于泛型方法的反射

原创 2013年12月03日 10:45:07

        在c# 中,有时候需要用到反射区调用带有泛型的方法。如例子:


public string CheckReflection<T>(string propertyName, T propertyValue) where T : struct

        {
            throw new InvalidOperationException(string.Format("Property {0} is not supported.", propertyName));

        }

在调用这个方法的时候,需要System.Reflection.MethodInfo 和Activator

      如下方法




        private string CallByReflection(
            object scanProcedure,          // scanProcedure 是你要反射对象的实例
            string propertyName,             // 参数一
            object propertyValue)        // 参数二
        {
            Type type = scanProcedure.GetType(); 
            object reflectTest = Activator.CreateInstance(type);
            // Just for simplicity, assume it's public etc
            MethodInfo method = typeof(反射的className).GetMethod("方法名");     //调用方法
            MethodInfo generic = method.MakeGenericMethod(propertyValue.GetType());
            return (string)generic.Invoke(reflectTest, new object[] { propertyName, propertyValue });
        }

相关文章推荐

如何通过反射调用类中的<泛型>方法

定义的接口: namespace IProgramShut { public interface IShut { /// /// 操作名称 ...
  • yan_hyz
  • yan_hyz
  • 2015年06月16日 22:41
  • 6433

使用反射+泛型方法来处理Linq的修改

在使用Linq进行数据修改时操作比较麻烦,下面是我的Linq操作常用方法:1.创建一个Linq To Sql的类,将数据库中数据拖到设计界面中如下图表结构:2.编写DB.cs文件    class D...

C# 使用反射动态调用泛型方法

通常我们能用到泛型方法时,如 fun() 如果泛型的T类型过多,如果使用swich会产生大量的冗余代码,通过反射动态的生成代码,可以减少大量的代码量。...

【Java学习】使用泛型和反射 创建通用的数据库查询方法

开始接触数据库编程的时候可能会觉得,不同的数据库表的查询应该对应不同的查询方法,但是这样会非常耗时并且没有意义,这里可以通过反射和泛型来创建一个通用的数据库查询方法。当查询不同的表时,只需要改变查询方...

如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??

如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法?
  • phker
  • phker
  • 2016年06月21日 08:37
  • 723

7、利用泛型和反射,让public static <T> T findById(Class<T> clazz, int id)方法,更具一般性

1、前面讲到的findById(int id),只是一个仅仅针对user表的操作,为了使得查找方法更具有一般性,引入了泛型和反射 2、利用泛型和反射,让public static T findByI...

C# 反射调用带参数的重载的泛型方法

C# 反射调用带参数的重载的泛型方法。 以及调用时抛出:不能对 ContainsGenericParameters 为 True 的类型或方法执行后期绑定操作异常的解决办法。 话不多说,上代码!...

C# 泛型方法反射调用窗体

//Create By ChimHsiung; //Begin 2016-10 //Last 2017-06 主界面窗体调用方法的设计变更历程: 一、原始方法,每个窗体一个类手动调用。弊端...
  • xwfswh
  • xwfswh
  • 2017年07月12日 21:44
  • 161

java泛型、原始类型、桥接方法

  • 2014年09月16日 14:04
  • 53KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于泛型方法的反射
举报原因:
原因补充:

(最多只允许输入30个字)