Поделиться через


TransientAttribute Класс

Определение

Помечает параметр в подклассе NSObject как временный.

[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false)]
public sealed class TransientAttribute : Attribute
type TransientAttribute = class
    inherit Attribute
Наследование
TransientAttribute
Атрибуты

Комментарии

Этот атрибут применяется к параметрам и используется только при переходе с Objective-C на C#. Во время этих переходов различные параметры NSObjects Objective-C упаковываются в управляемое представление объекта .

Среда выполнения принимает ссылку на собственный объект и сохраняет ссылку до тех пор, пока не будет удалена последняя управляемая ссылка на объект, и сборка мусора сможет запуститься.

В некоторых случаях важно, чтобы среда выполнения C# не сохраняла ссылку на собственный объект. Это иногда происходит, когда базовый машинный код прикрепляет особое поведение к жизненному циклу параметра. Например, деструктор для параметра выполнит какое-либо действие очистки или ликвидирует ценный ресурс.

Этот атрибут сообщает среде выполнения о необходимости удаления объекта при возврате обратно в Objective-C из перезаписаного метода.

Правило простое: если среде выполнения пришлось создать новое управляемое представление на основе собственного объекта, то в конце функции счетчик удержания для собственного объекта будет удален, а свойство Handle управляемого объекта будет удалено. Это означает, что если сохранить ссылку на управляемый объект, эта ссылка станет бесполезной (вызов методов в ней вызовет исключение).

Если переданный объект не был создан или уже существует неоплаченное управляемое представление объекта, принудительное удаление не выполняется.

Конструкторы

TransientAttribute()

Инициализирует новый атрибут Transient.

Применяется к