Ich arbeite mit SqlConnection und AdomdConnection Objekte in C#.Ist es möglich, zwei ähnliche Klassenfunktionen in einer Klasse in C# zu verpacken?
SqlConnection besteht aus: DbConnection, ICloneable.
AdomdConnection besteht aus: Komponente, IDbConnection, IDisposable, ICloneable.
Ich hoffte, ich könnte eine gemeinsame Schnittstelle oder einen Klassen-Typ verwenden, um herumzugehen, aber das scheint keine Option zu sein, weil sie keinen gemeinsamen Typ teilen, den ich sagen kann.
Sie haben beide ähnliche Methoden, die ich aufrufen muss, aber da ich etwas Logik schreiben werde, um sie für entweder zu nennen, wollte ich sie in ihre eigene Klasse einwickeln und dann nur diese Klasse anrufen und sich um den Grund kümmern Art.
Anfangs dachte ich, ich so etwas wie dies nutzen könnten:
public class ConnectionWrapper
{
protected object _Conn;
public ConnectionWrapper(object Conn)
{
_Conn = Conn;
}
public void Open()
{
if(_Conn is SqlConnection) { ((SqlConnection)_Conn).Open(); }
else if(_Conn is AdomdConnection) { ((AdomdConnection)_Conn).Open(); }
}
}
Aber ich kann nicht helfen, aber frage mich, dass es keinen besseren Weg, es zu tun ist.
Ich stieß auf die TypeMap-Klasse (siehe Frage 298976), die eine bessere Lesbarkeit bieten würde, aber ich konnte nicht herausfinden, wie man die Rückgabewerte verwendet, aber ich frage mich, ob es einen besseren Weg gibt es zu tun.
Sieht aus wie etwas, das man mit Generika lösen könnte. – workmad3
Aber Sie müssen nicht, da beide Connection Classes bereits dieselben Interfaces implementieren. –