Benutzer mit den meisten Antworten
Generische Klasse erstellen

Frage
-
Hallo
Habe diese Frage zwar schon im Englischen Forum gestellt, aber ich glaub auf Grund von Sprachbarrieren, ist die erwartete Antwort ausgeblieben...
Also, ich möchte eine generische Klasse erstellen, die mit dem "FluentValidation" arbeitet.
FluentValidation ist ein Framework, dass (wie der Name schon sagt) eine Erleichterung beim Überprüfen von Klassen hilft.Meine Klasse schaut im Moment so aus:
Public Class ValidateCustomer Inherits BaseValidation Public Sub Validate(CustomerToValidate As Customer) Dim validator As New CustomerValidation MyBase.GetInternalValidationResult = Helper.ReturnResult(validator.Validate(CustomerToValidate)) End Sub End Class
Wobei, bitte KEINE Konzentration auf BaseValidation Diese enthält "nur" öffentliche Methoden, für den Zugriff von aussen.
Wie man sehen kann, werden 2 Klassen übergeben. 1) Customer & 2) CustomerValidation
Jetzt möchte ich diese beiden Klassen als generische Typen deklarieren, so dass ich dann alle meine Klassen übergeben kann & nicht für jede Klasse wiederum eine "Validation" Klasse erstellen muss -> Redundanz...
Kann mir da jemand helfen?
Danke schon mal im Voraus
Antworten
-
Hallo,
damit Generics funktioniert, müssen die Klassen alle Validierungsmechanismen gleich ablaufen oder per Dependency Injection gesteuert werden. Ich kann mir im Moment nur etwas wie das folgende vorstellen:
Public Class Validator(Of T As IValidatable) Public Function Validate(obj As T) As Boolean Return obj.Validate() End Function End Class
Wobei hier jeder Typ der IValidatable implementiert die Validate()-Methode haben müsste. Das wiederum macht Validator überflüssig.
Das Problem ist, dass das zu validierende Objekt selbst etwas anbieten muss um zu sagen ob es valide ist oder nicht. Und das geht auch über Generiks nicht wirklich einfacher.
Kannst du uns den Link zum englischen Forum geben? Vielleicht sehen wir etwas, was dir weiter hilft.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 30. April 2015 10:13
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 8. Mai 2015 07:48
Alle Antworten
-
Hallo,
damit Generics funktioniert, müssen die Klassen alle Validierungsmechanismen gleich ablaufen oder per Dependency Injection gesteuert werden. Ich kann mir im Moment nur etwas wie das folgende vorstellen:
Public Class Validator(Of T As IValidatable) Public Function Validate(obj As T) As Boolean Return obj.Validate() End Function End Class
Wobei hier jeder Typ der IValidatable implementiert die Validate()-Methode haben müsste. Das wiederum macht Validator überflüssig.
Das Problem ist, dass das zu validierende Objekt selbst etwas anbieten muss um zu sagen ob es valide ist oder nicht. Und das geht auch über Generiks nicht wirklich einfacher.
Kannst du uns den Link zum englischen Forum geben? Vielleicht sehen wir etwas, was dir weiter hilft.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 30. April 2015 10:13
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 8. Mai 2015 07:48
-
Hallo
Ja, ich dachte mir schon so etwas...
Ich glaube, dass mir nichts anderes übrig bleiben wird, als die Klassen zu programmieren.Hier trotzdem der Link: Englische Version
DANKE - Schönen Tag