Compartilhar via


TransientAttribute Classe

Definição

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.

Aplica-se a