版本:Unity 6 (6000.0)
语言中文
  • C#

TypeCache.GetTypesDerivedFrom

提出建议

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交的建议,但的确会阅读每位用户提出的建议,并根据需要进行更新。

关闭

提交失败

由于某些原因无法提交您的建议。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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) { //... } } }

注意: 返回的 TypeCache.TypeCollection 是只读且线程安全的。集合中类型顺序是未定义的。