using System.Reflection; using GFramework.Cqrs.Abstractions.Cqrs; namespace GFramework.Cqrs; /// /// 描述单个 request/response 类型对在运行时分发时需要复用的元数据。 /// /// 当前请求处理器在容器中的服务类型。 /// /// 执行单个请求处理器的开放静态方法。 /// dispatcher 会在首次创建 request binding 时,把该方法绑定成内部使用的强类型委托。 /// /// /// dispatcher 会继续自行构造 pipeline behavior 服务类型并负责上下文注入; /// 该描述符只前移请求处理器服务类型与直接调用方法元数据。 /// public sealed class CqrsRequestInvokerDescriptor( Type handlerType, MethodInfo invokerMethod) { /// /// 获取请求处理器在容器中的服务类型。 /// public Type HandlerType { get; } = handlerType ?? throw new ArgumentNullException(nameof(handlerType)); /// /// 获取执行请求处理器的开放静态方法。 /// public MethodInfo InvokerMethod { get; } = invokerMethod ?? throw new ArgumentNullException(nameof(invokerMethod)); }