我觉得我错过了中间的一步.这就是我的try .

如果我try 这个:

typeof(IMessageHandler<>)
  .GetMethod("HandleAsync")! 
  .MakeGenericMethod(handlerInfo.HandledMessageType!)       
  .Invoke(incomingMessageHandler, 
  [consumerContext.Message, consumerContext]);

...然后我得到了一个错误:

System. InvalidOperationException:System. Threading. Tasks. ValueTask HandleAsync(TMessage,Additionpace. IConsumeContext)不是GenericMethodDefinition.MakeGenericMethod只能在MethodBase. IsGenericMethoddef为true的方法上调用.

如果我try 这个:

typeof(IMessageHandler<>)
  .GetMethod("HandleAsync")! 
  //.MakeGenericMethod(handlerInfo.HandledMessageType!)       
  .Invoke(incomingMessageHandler, 
  [consumerContext.Message, consumerContext]);

...我得到了错误:

不能对ContainsGenericProperties为true的类型或方法执行后期绑定操作.

推荐答案

基于提供的信息—它的类型是泛型/有泛型参数,而不是方法,所以构造类型(即MakeGenericType):

typeof(IMessageHandler<>)
  .MakeGenericType(handlerInfo.HandledMessageType!) 
  .GetMethod("HandleAsync")! 
  .Invoke(...)

Csharp相关问答推荐

如何使用PDFSharp将文本添加到现有PDF

C#相同名称的枚举方法和normal方法,参数类型不同

属性getter和setter之间的空性不匹配?

ITypeLib2.GetLibStatistics()在C#中总是抛出AccessViolationException

. net依赖注入如何避免服务类中的新

更新产品但丢失产品ASP.NET Core的形象

默认情况下,.NET通用主机(Host.CreateDefaultBuilder)中是否包含UseConsoleLifetime?

为什么我的表单在绑定到对象时提交空值?

Automapper 12.x将GUID映射到字符串

ASP.NET Core MVC将值从视图传递到控制器时出现问题

带有可选参数的模拟方法返回意外的不同值,具体取决于可选的默认值

异步等待Foreach循环中的ConfigureAWait(FALSE)执行什么操作?

BFF到具有AAD/Entra ID B2C的内部API(.NET/ASP.NET核心/标识.Web)

如何实现有条件的自定义Json转换器隐藏属性

毛伊岛.NET 8图片不再适合按钮

c#在后台实现类型化数组

如何使用.NET 8.0中新的CompositeFormat类?

Xamarin.Forms项目中缺少MainPage.xaml

反序列化我以前使用System.Text.Json序列化的文件时出现异常

C#LINQ多行条件