C#通过反射创建自定义泛型

前端技术 2023/09/05 C#

本文以实例形式讲述了C#通过反射创建自定义泛型的实现方法,分享给大家供大家参考。具体如下:

比如有这样一个泛型:Demo.GenericsSimple<T,TT> 我想要通过反射创建一个Demo.GenericsSimple<string,int>的实例可以通过下面的格式进行创建:

System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(\"命名空间.User`形参数量N[[1形参类型全名,形参类型所在的程 序集名称],[2形参类型全名,形参类型所在的程序集名称],[3形参类型全名,形参类型所在的程序集名称]......N]\")

实例代码如下:

namespace Demo
{
  public class GenericsSimple<T,TT> where T:class where TT:struct
  {}
  class Program
  {
    static void Main(string[] args)
    {
      var o = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(\"Demo.GenericsSimple`2[[System.String, mscorlib],[System.Int32, mscorlib]]\");
      Console.WriteLine(\"{0}\",o==null?\"null\":o.GetType().FullName);
      Console.WriteLine(\"===end===\");
      Console.Read();    
   }
  }
}

希望本文实例对大家的C#程序设计有所帮助。

本文地址:https://www.stayed.cn/item/13976

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。