TypeCache.GetFieldsWithAttribute
Declaration
public static TypeCache.FieldInfoCollection GetFieldsWithAttribute();public static TypeCache.FieldInfoCollection GetFieldsWithAttribute(Type attrType);public static TypeCache.FieldInfoCollection GetFieldsWithAttribute(string assemblyName);public static TypeCache.FieldInfoCollection GetFieldsWithAttribute(Type attrType, string assemblyName);Параметры
| Параметр | Описание |
|---|---|
| attrType | Тип атрибута. |
| assemblyName | Факультативное имя сборки. |
Возвращаемое значение
FieldInfoCollection Возвращает неупорядоченную коллекцию FieldInfo полей, помеченных атрибутом T. Если указан атрибут assemblyName, возвращаются только поля, определенные в этой сборке.
Описание
Получает неупорядоченный набор полей, помеченных атрибутом T.
Этот метод даёт быстрый доступ ко всем полям классов, загруженным из указанной сборки или из всех сборок домена Unity и помеченным конкретным атрибутом. Поля, помеченные наследниками указанного атрибута, тоже попадают в результат. Порядок результатов не определён.
using UnityEditor; using System; using System.Collections.Generic;
public class Example { class MyAttribute : Attribute {}
[MyAttribute] static int s_MyField;
static void ScanStaticFieldsMarkedWithMyAttribute() { var extractedFields = TypeCache.GetFieldsWithAttribute<MyAttribute>(); foreach (var fi in extractedFields) { if (!fi.IsStatic) continue; //... } } }
Примечание: Возвращенные FieldInfoCollection являются только для чтения и безопасны для потоков. Порядок FieldInfo в коллекции не определен.