![](/img/trans.png)
[英]Cannot create an instance of because Type.ContainsGenericParameters is true
[英]C# Cannot create an instance because Type.ContainsGenericParameters is true
我試圖反序列化Generic<T> where T : struct
但是當我調用ctor.Invoke(args);
我得到異常“無法創建實例,因為Type.ContainsGenericParameters為true”。
如何傳遞我想要的泛型類型?
Type.MakeGenericType
可能就是你要找的......
您必須首先使用泛型類型的MakeGenericType方法創建具體類型
假設你有一個泛型類的Type t
,它有一個無參數的構造函數,以及一個用作泛型類的類型參數的類型數組:
Type t = someType;
Type[] genericTypeParameters = someArrayOfTypeParameters;
調用Type.MakeGenericType()
,其中
用當前泛型類型定義的類型參數替換類型數組的元素,並返回表示結果...類型的Type對象
然后正常構造對象:
t = t.MakeGenericType(genericTypeParameters);
object instance = Activator.CreateInstance(t);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.