Kovarianz mit C #

In meinem C # -Code ist ein interessantes Kovarianzproblem aufgetreten.

Ich habe ein GenerikumMatrix<T> Klasse, und es wurde zum Beispiel instanziiertMatrix<int>, Matrix<object> undMatrix<Apple>.

Für meine Geschäftslogik habe ich sie in eine generische verpacktWrapper<T>. Dieser Wrapper implementiert nicht generischeINonGenericWrapper Schnittstelle. Also habe ichWrapper<int>, Wrapper<object> undWrapper<Apple>.

Mein Problem ist: Ich möchte einen Container für all diese 3 definierenWrappers. Kann ich nicht sagenList<Wrapper<object>>, weil ich nicht einfügen kannWrapper<int> in diese Sammlung. Ich kann nicht einmal sagenList<INonGenericWrapper>, weil ich in meinem foreach auf das generikum zugreifen möchteMatrix<T> Parameter.

Cheesy Part: Diese Wrapper werden (de-) serialisiert mit dem bestimmten Typ:MySerializer<Wrapper<Apple>>.Serialize(_myInstanceOfWrappedApple).

Ich denke es ist klar, dass ich große Wechsel von vermeiden möchtetypeof beim serialisieren ..

Was ist meine mögliche Problemumgehung? Ich stecke irgendwie fest.

Danke im Voraus,

Antworten auf die Frage(2)

Ihre Antwort auf die Frage