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