我有以下方法接收详细信息对象,验证它,将其转换为请求并将其排队.除了我遇到麻烦的验证请求之外,一切都很好.基本上,每个不同的细节对象都有不同的验证逻辑.我从通用约束中知道,细节对象必须具有BaseDetails的基类,并且从实际的泛型参数我知道确切的派生类型,但不知道如何使用它们来编写我的验证器类,以便它处理所有类型的细节:
private void Enqueue<TDetails, TRequest>(TDetails details)
where TDetails: BaseDetails where TRequest: BaseRequest
{
bool isValid = _validator.Validate(details);
if (isValid)
{
TRequest request = ObjectMapper
.CreateMappedMessage<TDetails, TRequest>(details);
_queue.Enqueue(request);
}
}
Run Code Online (Sandbox Code Playgroud)