我得到了一个c#方法,它接收一个泛型Delegate作为参数,并在调用后检查结果的类型: public async Task<TResult> InvokeAction<TResult>(Delegateaction, object[] actionArgs = null)...var result = action.DynamicInvoke(actionArgs);
if (result is Task<TResult> task)
为了动态地创建委托,技术从Delegate.CreateDelegate、Expresion、DynamicMethod等等都不一样。所有这些技术都要求您知道委托的类型。我试图一般地将封闭委托转换为打开委托,要做到这一点,在实际创建结果委托之前,我似乎需要动态创建打开委托的类型。emmisions go here
var openDelegate = dm.CreateDelegate(openDelegateTy