本文以實例形式講述了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#程序設計有所幫助。
新聞熱點
疑難解答