Das ist wahrscheinlich meine Naivität, die durchscheint, aber egal...
Ich habe eine generische Schnittstelle, die eine Reihe von Standardmethoden (unterschiedlich implementiert) für verschiedene Implementierungen definiert.
Ich übergebe die Schnittstelle als Parameter an eine Methode, die für die Speicherung in einer Datenbank zuständig ist. Ich habe z.B. einige Implementierungen namens Bug, Incident usw., die von der generischen Schnittstelle (genannt IEntry) definiert werden. Diese konzertierten Implementierungen verwenden auch IEnumerable
Da ein Fehler etwas anderes ist als ein Vorfall, gibt es verschiedene Felder. Wenn ich die Schnittstelle als Parameter an eine Methode übergebe, gibt es dann eine Möglichkeit, auf den Typ zu schließen? Wenn ich also das Bug-Objekt übergebe, kann ich seine Felder verwenden, die nicht dieselben sind wie die Felder von Incident. Diese Felder sind für die Persistenz in der Datenbank nützlich. Ich gehe davon aus, dass dies nicht der Fall ist, weil es keine Möglichkeit gibt, den Typ des übergebenen Objekts zu kennen (offensichtlich), aber ich weiß, dass die Leute hier mehr Wissen haben. Gibt es in diesem Fall einen besseren Weg, die Dinge zu tun? Wegen der Ähnlichkeit würde ich gerne bei den Schnittstellen bleiben.
EDIT: Ich schätze, die andere Möglichkeit ist, einige Flusssteuerung verwenden, um die Sql-Anweisung on the fly zu generieren und dann als Parameter übergeben.
Gracias