Asumiendo tipoBase contiene un objeto System.Type que desea comprobar en contra y matchType contiene un objeto System.Type con el tipo de su iteración actual (a través de un bucle foreach-o lo que sea):
Si desea para comprobar tiempo lo matchType se deriva de la clase representada por tipoBase que haría uso de
matchType.IsSubclassOf(baseType)
Y si desea comprobar matchType tiempo lo implementa la interfaz representada por tipoBase que haría uso de
matchType.GetInterface(baseType.ToString(), false) != null
Por supuesto que almacenaría baseType.ToString() como una variable global, así que no tendría que llamarlo todo el tiempo. Y dado que probablemente lo necesite en un contexto en el que tenga muchos tipos, también podría considerar usar System.Threading.Tasks.Parallel.ParaCada-Loop para iterar a través de todos los tipos ...
¿De qué manera es extraño? No es algo que a menudo se requiere. –
Solo pensé que era un alto costo de rendimiento, por "solo saber qué tipos se derivan de algún tipo '(cortaré el' extraño ';) – Bluenuance
¿Ha mirado usando [Enumerable.OfType] (http: // msdn .microsoft.com/es-us/library/bb360913.aspx)? –