TypeCache.GetTypesDerivedFrom
Declaration
public static TypeCache.TypeCollection GetTypesDerivedFrom();public static TypeCache.TypeCollection GetTypesDerivedFrom(Type parentType);public static TypeCache.TypeCollection GetTypesDerivedFrom(string assemblyName);public static TypeCache.TypeCollection GetTypesDerivedFrom(Type parentType, string assemblyName);Параметры
| Параметр | Описание |
|---|---|
| parentType | Тип класса или интерфейса. |
| assemblyName | Факультативное имя сборки. |
Возвращаемое значение
TypeCollection Возвращает неупорядоченную коллекцию производных типов. Если указано assemblyName, возвращает только типы, определенные в этом сборке.
Описание
Получает неупорядоченную коллекцию типов, полученных из типа T.
Этот метод даёт быстрый доступ ко всем классам, загруженным из указанной сборки или из всех сборок домена Unity, которые наследуют конкретный класс или реализуют конкретный интерфейс. Базовый класс или интерфейс может быть обобщённым. Порядок результатов не определён.
using UnityEditor;
public class Example { static void ScanAssetPostprocessors() { var extractedTypes = TypeCache.GetTypesDerivedFrom<AssetPostprocessor>(); foreach (var editors in extractedTypes) { //... } } }
Либо классы, реализующие конкретный интерфейс.
using UnityEditor;
public interface IExampleInterface {}
public class Example { static void ScanInterfaceImplementers() { var extractedTypes = TypeCache.GetTypesDerivedFrom<IExampleInterface>(); foreach (var editors in extractedTypes) { //... } } }
Примечание: Возвращаемые TypeCollection типы доступны только для чтения и безопасны для потоков. Порядок типов в коллекции не определен.