Test de type générique hérités
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 :D
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 :
Code:
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
} |
Merci aux pros de dotNet de m'aider à trouver une solution.
(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é).