TransientAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Signale un paramter dans une sous-classe NSObject comme étant temporaire.
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false)]
public sealed class TransientAttribute : Attribute
type TransientAttribute = class
inherit Attribute
- Héritage
-
TransientAttribute
- Attributs
Remarques
Cet attribut est appliqué aux paramètres et est utilisé uniquement lors de la transition d’Objective-C vers C#. Pendant ces transitions, les différents paramètres NSObjects Objective-C sont encapsulés dans une représentation managée de l’objet.
Le runtime prend une référence à l’objet natif et conserve la référence jusqu’à ce que la dernière référence managée à l’objet ait disparu et que le GC ait la possibilité de s’exécuter.
Dans certains cas, il est important que le runtime C# ne conserve pas de référence à l’objet natif. Cela se produit parfois lorsque le code natif sous-jacent a attaché un comportement spécial au cycle de vie du paramètre. Par exemple : le destructeur du paramètre effectue une action de nettoyage ou élimine une ressource précieuse.
Cet attribut informe le runtime que vous souhaitez que l’objet soit supprimé si possible lors du retour à Objective-C à partir de votre méthode remplacée.
La règle est simple : si le runtime doit créer une représentation managée à partir de l’objet natif, à la fin de la fonction, le nombre de rétentions de l’objet natif est supprimé et la propriété Handle de l’objet managé est effacée. Cela signifie que si vous conservez une référence à l’objet managé, cette référence devient inutile (l’appel de méthodes dessus lève une exception).
Si l’objet passé n’a pas été créé ou s’il y avait déjà une représentation managée en suspens de l’objet, la suppression forcée n’a pas lieu.
Constructeurs
TransientAttribute() |
Initialise un nouvel attribut Transient. |