經過反射建立自定義泛型的實例。

好比有這樣一個泛型:Demo.GenericsSimple<T,TT> 我想要經過反射建立一個Demo.GenericsSimple<string,int>的實例能夠經過下面的格式進行建立:spa

System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空間.User`形參數量N[[1形參類型全名,形參類型所在的程 序集名稱],[2形參類型全名,形參類型所在的程序集名稱],[3形參類型全名,形參類型所在的程序集名稱]......N]")code

代碼:blog

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();       

     }
    }

}
相關文章
相關標籤/搜索