c# - 反射、泛型、事件处理程序和委托(delegate)问题

标签 c# generics reflection delegates event-handling

我在反射、泛型、事件处理程序和委托(delegate)方面苦苦挣扎。我有一个派生自 AsyncCompletedEventArgs 的类型。我想用这个 Type 和一个委托(delegate)创建一个通用的 EventHandler 实例。之后我想将此事件处理程序添加到事件中。

谁能帮助我使用反射创建事件处理程序和委托(delegate)?感谢所有帮助。

// 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 表达式;为此,您需要编译一个表达式树。

关于c# - 反射、泛型、事件处理程序和委托(delegate)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7554439/

相关文章:

java - 如何使用反射创建具有大小的 byte[]?

c# - iTextSharp - 打开文件并保存 PdfDestination 和 PdfAction

c# - ASP.NET Core Controller 的路由和索引操作

c# - 快速并发检查 .co.za 域的 SOA DNS 记录

Java泛型,返回什么而不是-1

c++ - 类模板 - 找不到合适的运算符方法

java - 泛型类型问题

java - 如何以反射方式调用 Java 8 默认方法

Scala:打印给定类的字段和值

c# - WebAPI 错误读取 MIME 多部分正文部分