Bonsoir
Un problème simple que je ne sais pas résoudre de manière "pas trop sale", et qui, là, est en train de me pourrir la vie
Soit un type générique X<T>.
Soit un autre héritant du premier Y<T> : X<T>
Soit une référence d'object y de type, par exemple Y<string>.
Comment puis je tester que y est une instance de type héritant de X ?
Je précise que :
Merci aux pros de dotNet de m'aider à trouver une solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 X<int> x = new X<int>(); Y<string> y = new Y<string>(); Type tx = x.GetType().GetGenericTypeDefinition(); Type tY = typeof( Y<object> ).GetGenericTypeDefinition(); Type ty = y.GetType().GetGenericTypeDefinition(); Type tX = typeof( X<object> ).GetGenericTypeDefinition(); if (tY.IsSubclassOf(tX)) { // MARCHE PAS }
(j'aimerais autant ne pas passer par une analyse du nommage, car l'aspect bizarre du FullName des génériques me laisse circonspect sur la pérennité de ce nommage interne avec le quote inversé).
Partager