反射、泛型、事件处理程序和委托问题
本文关键字:问题 程序 泛型 事件处理 反射 | 更新日期: 2023-09-27 18:09:55
我正在与反射、泛型、事件处理程序和委托作斗争。我有一个类型是从AsyncCompletedEventArgs派生的。我想用这个类型创建一个通用的EventHandler实例,也是一个委托。之后,我想把这个事件处理程序添加到一个事件中。
谁能帮助我创建事件处理程序和委托使用反射?感谢所有的帮助。
// The type is derived from AsyncCompletedEventArgs
Type[] typeArgs = { soapServiceInfo.GetEntitiesCompletedEventArgsType };
var eventHandlerType = typeof(EventHandler<>);
var constructed = eventHandlerType.MakeGenericType(typeArgs);
// getEntitiesCompleted = (sender, arguments) => { }
// soapServiceInfo.GetEntitiesCompletedEventInfo.AddEventHandler(client, getEntitiesCompleted);
只能为编译时已知的类型创建lambda表达式。
你试图在运行时创建一个lambda表达式;为此,您需要编译一个表达式树。
查看Delegate.CreateDelegate()