Asuming baseType contient un objet System.Type que vous voulez vérifier et contre matchType contient un objet System.Type avec le type de votre itération courante (à travers une boucle foreach ou autre):
Si vous voulez pour vérifier wheather matchType est dérivé de la classe représentée par baseType j'utiliser
matchType.IsSubclassOf(baseType)
Et si vous voulez vérifier wheather matchType implémente l'interface représentée par baseType j'utiliser
matchType.GetInterface(baseType.ToString(), false) != null
Bien sûr, je stockerais baseType.ToString() comme une variable globale, donc je n'aurais pas besoin de l'appeler tout le temps. Et puisque vous en auriez probablement besoin dans un contexte où vous avez beaucoup de types, vous pourriez aussi envisager d'utiliser System.Threading.Tasks.Parallel.ForEach-boucle pour itérer tous vos types ...
En quoi est-ce étrange? Ce n'est pas quelque chose qui est souvent nécessaire. –
Je pensais juste que c'était un lourd coût de performance, pour "juste savoir quels types sont dérivés d'un certain type" (je vais couper le 'étrange';) – Bluenuance
Avez-vous regardé en utilisant [Enumerable.OfType] (http: // msdn .microsoft.com/fr-us/library/bb360913.aspx)? –