TransientAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sinaliza um paramter em uma subclasse NSObject como sendo transitório.
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false)]
public sealed class TransientAttribute : Attribute
type TransientAttribute = class
inherit Attribute
- Herança
-
TransientAttribute
- Atributos
Comentários
Esse atributo é aplicado a parâmetros e só é usado durante a transição de Objective-C para C#. Durante essas transições, os vários parâmetros Objective-C NSObjects são encapsulados em uma representação gerenciada do objeto.
O runtime fará uma referência ao objeto nativo e manterá a referência até que a última referência gerenciada ao objeto tenha sumido e o GC tenha a chance de ser executado.
Em alguns casos, é importante que o runtime do C# não mantenha uma referência ao objeto nativo. Às vezes, isso acontece quando o código nativo subjacente anexa um comportamento especial ao ciclo de vida do parâmetro. Por exemplo: o destruidor do parâmetro executará alguma ação de limpeza ou descartará algum recurso precioso.
Esse atributo informa ao runtime que você deseja que o objeto seja descartado, se possível, ao retornar ao Objective-C de seu método substituído.
A regra é simples: se o runtime tiver que criar uma nova representação gerenciada do objeto nativo, no final da função, a contagem de retenção para o objeto nativo será descartada e a propriedade Handle do objeto gerenciado será desmarcada. Isso significa que, se você mantiver uma referência ao objeto gerenciado, essa referência se tornará inútil (invocar métodos nele gerará uma exceção).
Se o objeto passado não tiver sido criado ou se já houver uma representação gerenciada pendente do objeto, o descarte forçado não ocorrerá.
Construtores
TransientAttribute() |
Inicializa um novo atributo Transient. |