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. |