Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将反射方法作为参数传递给另一个作为委托的反射方法_C#_Reflection_Methodinfo - Fatal编程技术网

C# 将反射方法作为参数传递给另一个作为委托的反射方法

C# 将反射方法作为参数传递给另一个作为委托的反射方法,c#,reflection,methodinfo,C#,Reflection,Methodinfo,我有一个带签名的函数 private void FunkA(string eventName, Action action) {} private void FunkB() {} 我通过思考获得的。action的值也是通过反射获得的,因此在我的代码中,我必须找到一种方法,将“MethodInfo”作为参数传递到调用中 MethodInfo miForFunkA; MethodInfo miForFunkB; miForFunkA.Invoke(sourceOfFunkA, new [] {

我有一个带签名的函数

private void FunkA(string eventName, Action action) {}
private void FunkB() {}
我通过思考获得的。action的值也是通过反射获得的,因此在我的代码中,我必须找到一种方法,将“MethodInfo”作为参数传递到调用中

MethodInfo miForFunkA;
MethodInfo miForFunkB;

miForFunkA.Invoke(sourceOfFunkA, new [] {
    methodInfo.Name,
    Delegate.CreateDelegate(typeof(Action), miForFunkB)
});
问题是我无法创建具有字符串和委托类型的参数列表。
该如何传递?

您应该明确指定数组类型:

miForFunkA.Invoke(sourceOfFunkA, new object[] {
    methodInfo.Name,
    Delegate.CreateDelegate(typeof(Action), miForFunkB)
});

如果这不能解决您的问题,您应该编辑您的问题,以便更清楚地了解您正在尝试做什么,涉及的所有变量的声明,您现在有什么代码,它做什么,这与您想要做的有什么不同。

在之前的一次迭代中,我试图传递一个基于另一个应答对象的lambda表达式,但我遇到了一个错误。但是,对于委托,它可以正常工作。