TransientAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Contrassegna un paramter in una sottoclasse NSObject come temporaneo.
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false)]
public sealed class TransientAttribute : Attribute
type TransientAttribute = class
inherit Attribute
- Ereditarietà
-
TransientAttribute
- Attributi
Commenti
Questo attributo viene applicato ai parametri e viene usato solo durante la transizione da Objective-C a C#. Durante queste transizioni i vari parametri Objective-C NSObjects vengono inseriti in una rappresentazione gestita dell'oggetto.
Il runtime accetta un riferimento all'oggetto nativo e mantiene il riferimento fino all'ultimo riferimento gestito all'oggetto e la GC ha la possibilità di eseguire.
In alcuni casi, è importante che il runtime C# non mantenga un riferimento all'oggetto nativo. Ciò avviene talvolta quando il codice nativo sottostante ha associato un comportamento speciale al ciclo di vita del parametro. Ad esempio, il distruttore per il parametro eseguirà un'azione di pulizia o eliminerà una risorsa preziosa.
Questo attributo informa il runtime di voler eliminare l'oggetto se possibile quando si torna a Objective-C dal metodo sovrascritto.
La regola è semplice: se il runtime deve creare una nuova rappresentazione gestita dall'oggetto nativo, alla fine della funzione, il conteggio di conservazione per l'oggetto nativo verrà eliminato e la proprietà Handle dell'oggetto gestito verrà cancellata. Ciò significa che se è stato mantenuto un riferimento all'oggetto gestito, tale riferimento diventerà inutile (richiamando metodi su di esso genererà un'eccezione).
Se l'oggetto passato non è stato creato o se è già presente una rappresentazione gestita in sospeso dell'oggetto, l'eliminazione forzata non viene eseguita.
Costruttori
TransientAttribute() |
Inizializza un nuovo attributo temporaneo. |