Ich implementiere eine Schnittstelle, um benutzerdefinierte Geschäftslogik in ein Framework zu injizieren, das Microsoft Unity verwendet. Mein Kernproblem ist, dass eine der Schnittstelle Ich brauche die folgende Methode zur Implementierung definiert:Implementieren einer Schnittstelle mit einem generischen Typ, der weniger eingeschränkt ist als der einer Methode, die ich aufrufen muss
T InterfaceMethod<T>();
T
keine Einschränkungen haben. In meinem Code, ich brauche aus einer anderen 3rd-Party-Bibliothek, ein Verfahren zu nennen, mit einer Methodensignatur von
T AnotherMethod<T>() where T: class;
Der Typ T ist signifikant für die Logik der AnotherMethod
. Gibt es eine Möglichkeit, AnotherMethod<T>()
innerhalb meiner Implementierung aufzurufen, ohne Reflektion zu verwenden? Ich muss natürlich eine alternative Aktion durchführen, wenn T
ein Werttyp ist. Gibt es vielleicht einen Weg zur Autobox, um das zu umgehen?
Was bedeutet AnotherMethod() tun mit T? Wenn Sie es boxen wollen, werfen Sie es einfach vorher auf ein Objekt ..? –
Nicht sicher, dass es mir hilft, da ich einen Kompilierungsfehler bezüglich T erhalte, der ein Bezugstyp sein muss. – techphoria414