// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
namespace GFramework.Cqrs;
///
/// 描述单个 request/response 类型对与其 generated invoker 元数据之间的映射条目。
///
public sealed record CqrsRequestInvokerDescriptorEntry
{
///
/// 初始化 request invoker 描述符映射条目。
///
/// 请求运行时类型。
/// 响应运行时类型。
/// 对应的 generated request invoker 描述符。
///
/// 当 、 或 为 时抛出。
///
public CqrsRequestInvokerDescriptorEntry(
Type requestType,
Type responseType,
CqrsRequestInvokerDescriptor descriptor)
{
RequestType = requestType ?? throw new ArgumentNullException(nameof(requestType));
ResponseType = responseType ?? throw new ArgumentNullException(nameof(responseType));
Descriptor = descriptor ?? throw new ArgumentNullException(nameof(descriptor));
}
///
/// 获取请求运行时类型。
///
public Type RequestType { get; }
///
/// 获取响应运行时类型。
///
public Type ResponseType { get; }
///
/// 获取对应的 generated request invoker 描述符。
///
public CqrsRequestInvokerDescriptor Descriptor { get; }
}