para encontrar tipos derivados de un tipo especificado
en programación, a menudo es necesario determinar todos los tipos derivados de un tipo base dado. Tradicionalmente, esto se ha logrado a través de técnicas laboriosas, como iterar sobre todos los tipos en ensamblajes cargados y verificar manualmente la asignabilidad al tipo de destino.
, sin embargo, existe una solución más eficiente y elegante utilizando LINQ (consulta integrada del lenguaje). El siguiente fragmento de código proporciona una forma directa y de rendimiento de lograr esta tarea:
var listOfDerivedTypes = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() from type in domainAssembly.GetTypes() where typeof(BaseTypeName).IsAssignableFrom(type) select type).ToArray();
Alternative Fluent Syntax:
La expresión de Linq también se puede escribir en un estilo más fluido para la lectura mejorada:
var listOfDerivedTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(type => typeof(BaseTypeName).IsAssignableFrom(type)) .ToArray();
Customizations:
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3