![](/img/trans.png)
[英]Activator.CreateInstance - How to create instances of classes that have parameterized constructors
[英]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.