我无法弄清楚如何将回调作为参数使用Invoke。 CallbackMethod是这个例子中的回调,我尝试调用MyFunc(任何给定类型)并将其作为回调传递给CallbackMethod。
MyFunc是我试图调用的模板函数。
问题是CallbackMethod是一个方法,不喜欢转换为对象。如果我不使用invoke,它的工作正常,但由于Invoke需要一个对象数组,我不知道该怎么做。我已经尝试了不同的方法,但我似乎无法找到一个有效的方法。
MethodInfo mi = typeof(MyType).GetMethod("MyFunc");
mi.MakeGenericMethod(mType).Invoke(this.MyTypeInstance, new object[] { CallbackMethod });
int MyFunc<T>(Action<T> callback) where T : class, new();
public void CallbackMethod<T>(T msg)
{
...
}
答案 0 :(得分:0)
尝试将该方法强制转换为委托。
mi.MakeGenericMethod(mType).Invoke(this.MyTypeInstance,
new object[] { (Action<object>)CallbackMethod });