利用反射操作泛型类和泛型方法

  • 加载DLL文件

    Assembly assembly = Assembly.LoadFrom(@"SqlServerDB.dll");
    
  • 获取指定类型

      Type type = assembly.GetType("SqlServerDB.GenericClass`2").MakeGenericType(typeof(int), typeof(string));//一定给定具体类型参数
    
  • 调用泛型方法

    object objTest2 = Activator.CreateInstance(type);
                var method = type.GetMethod("GenericMethod").MakeGenericMethod(typeof(int));
                method.Invoke(objTest2, new object[] { });
    
  • 反射测试类

    位于SqlServerDB.dll中的GenericClass.cs文件中

    public class GenericClass<T,W>
       {
           public void GenericMethod<TType>()
           {
               Console.WriteLine("泛型类调用+泛型方法");
           }
       }
    
posted @ 2022-03-25 17:05  码农阿亮  阅读(51)  评论(0编辑  收藏  举报