поиск производных типов указанного типа
В программировании часто необходимо определить все производные типы данного базового типа. Традиционно это было достигнуто с помощью трудоемких методов, таких как итерация по всем типам в загруженных сборках и проверка вручную для назначения целевого типа.
Однако более эффективное и элегантное решение существует с использованием LINQ (языковой интегрированный запрос). Следующий фрагмент кода обеспечивает простой и исполнительный способ выполнения этой задачи:
var listOfDerivedTypes = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() from type in domainAssembly.GetTypes() where typeof(BaseTypeName).IsAssignableFrom(type) select type).ToArray();
альтернативный синтаксис беглости:
выражение LINQ также можно записать в более свободном стиле для улучшенной читаемости:
var listOfDerivedTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(type => typeof(BaseTypeName).IsAssignableFrom(type)) .ToArray();
настройки:
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3