我正在与反思,泛型,事件处理程序和代表进行斗争。我有一个派生自AsyncCompletedEventArgs的Type。我想用这个Type创建一个通用的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);
答案 0 :(得分:1)
您只能为编译时已知的类型创建lambda表达式。
您正在尝试在运行时创建lambda表达式;要做到这一点,你需要编译一个表达式树。
答案 1 :(得分:0)