簡體   English   中英

使用Activator.CreateInstance創建功能 <T> 實例

[英]Using Activator.CreateInstance to create Func<T> instances

有人知道如何動態創建Func<T>實例嗎?

//Create the Func type

Type funcType = typeof(Func<>).MakeGenericType(typeof(string)); 

//How do I pass a reference to the anonymous method? 

Activator.CreateInstance(funcType, () => "test");

這不會編譯:

無法將Lambda表達式轉換為object[]類型,因為它不是委托類型

任何人?

您需要使用表達式樹:

var func = Expression.Lambda(Expression.Constant("test")).Compile();
var result = func.DynamicInvoke();

我認為你不能。 該博客以某種方式解釋了該問題。 我建議您尋找一種替代方法。 您可以改用表達式樹嗎?

您需要一個可以轉換為System.Object的對象,為此,您需要首先創建一個類似於Func<String>的委托。 因此,在運行時創建Func<T>對我來說毫無意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM