Hinzufügen einer Validierung zu einer MediatR-Verhaltenspipeline?

8

Ich benutze ASP.NET Core, den eingebauten Container und MediatR 3, der "Verhaltens" -Pipelines :

%Vor%

Ich brauche einen FluentValidation-Validator in der Pipeline. In MediAtR 2 wurde daher eine Validierungspipeline erstellt :

%Vor%

Wie mache ich das jetzt für die neue Version? Wie lege ich fest, welcher Validator verwendet werden soll?

    
grokky 16.02.2017, 19:30
quelle

1 Antwort

9

Der Prozess ist genau der gleiche, Sie müssen nur die Schnittstelle ändern, um die neue IPipelineBehavior<TRequest, TResponse> Schnittstelle zu verwenden.

%Vor%

Für die Validierer sollten Sie alle Validatoren als IValidator<TRequest> im integrierten Container registrieren, damit sie in das Verhalten eingefügt werden. Wenn Sie sie nicht nacheinander registrieren möchten, schlage ich vor, dass Sie sich die großartige Scrutor-Bibliothek ansehen, die die Assembly enthält Scan-Funktionen. Auf diese Weise wird es Ihre Validatoren selbst finden.

Mit dem neuen System verwenden Sie auch nicht mehr das Decorator-Muster, Sie registrieren nur Ihr generisches Verhalten im Container und MediAtR nimmt es automatisch auf. Es könnte etwa so aussehen:

%Vor%     
Mickaël Derriey 17.02.2017, 03:49
quelle