J'ai la méthode suivante qui prend dans un objet de détails, le valide, le convertit en une demande et le met en file d'attente. Tout va bien à part la demande de validation avec laquelle j'ai des problèmes. Fondamentalement, il existe différentes logiques de validation pour chaque objet de détails différents. Je sais par la contrainte générique que l'objet détails doit avoir une classe de base de BaseDetails et du vrai paramètre générique je connais le type dérivé exact, mais je ne sais pas comment les utiliser pour écrire ma classe de validateur afin qu'il gère tous les types de détails :Question de polymorphisme débutant en utilisant des génériques
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);
}
}
Avez-vous besoin d'une validation différente pour chaque implémentation de TDetails? –
oui, certains sont communs, mais il y a différents bits supplémentaires pour chaque TDetails. –