C#通過(guò)反射創(chuàng)建自定義泛型
本文以實(shí)例形式講述了C#通過(guò)反射創(chuàng)建自定義泛型的實(shí)現(xiàn)方法,分享給大家供大家參考。具體如下:
比如有這樣一個(gè)泛型:Demo.GenericsSimple<T,TT> 我想要通過(guò)反射創(chuàng)建一個(gè)Demo.GenericsSimple<string,int>的實(shí)例可以通過(guò)下面的格式進(jìn)行創(chuàng)建:
System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空間.User`形參數(shù)量N[[1形參類(lèi)型全名,形參類(lèi)型所在的程 序集名稱(chēng)],[2形參類(lèi)型全名,形參類(lèi)型所在的程序集名稱(chēng)],[3形參類(lèi)型全名,形參類(lèi)型所在的程序集名稱(chēng)]......N]")
實(shí)例代碼如下:
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();
}
}
}
希望本文實(shí)例對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C#使用反射加載多個(gè)程序集的實(shí)現(xiàn)方法
- C#中的程序集和反射介紹
- SQL Server中調(diào)用C#類(lèi)中的方法實(shí)例(使用.NET程序集)
- c# 命名空間和程序集
- C# 獲取程序集版本、文件版本
- C# Assembly類(lèi)訪問(wèn)程序集信息
- C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達(dá)式調(diào)用對(duì)比
- C#實(shí)現(xiàn)利用反射簡(jiǎn)化給類(lèi)字段賦值的方法
- C#利用反射來(lái)判斷對(duì)象是否包含某個(gè)屬性的實(shí)現(xiàn)方法
- C# 程序集和反射詳解
相關(guān)文章
通過(guò)App.xaml理解wpf中的Application類(lèi)
這篇文章主要介紹了通過(guò)App.xaml理解wpf中的Application類(lèi),幫助大家更好的理解和學(xué)習(xí)使用c# wpf,感興趣的朋友可以了解下2021-04-04
C#實(shí)現(xiàn)求一組數(shù)據(jù)眾數(shù)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)求一組數(shù)據(jù)眾數(shù)的方法,這里以浮點(diǎn)型數(shù)組為例分析了C#求眾數(shù)的算法原理與實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
C#對(duì)WPF數(shù)據(jù)綁定的菜單插入Seperator分隔
這篇文章介紹了C#對(duì)WPF數(shù)據(jù)綁定的菜單插入Seperator分隔的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C#使用Dynamic實(shí)現(xiàn)簡(jiǎn)化反射
這篇文章主要為大家詳細(xì)介紹了C#如何使用Dynamic來(lái)實(shí)現(xiàn)簡(jiǎn)化反射,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-07-07
C#中Override關(guān)鍵字和New關(guān)鍵字的用法詳解
這篇文章主要介紹了C#中Override關(guān)鍵字和New關(guān)鍵字的用法,需要的朋友可以參考下2016-01-01

