TransientAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Kennzeichnet einen Paramter in einer NSObject-Unterklasse als vorübergehend.
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false)]
public sealed class TransientAttribute : Attribute
type TransientAttribute = class
inherit Attribute
- Vererbung
-
TransientAttribute
- Attribute
Hinweise
Dieses Attribut wird auf Parameter angewendet und nur beim Übergang von Objective-C zu C# verwendet. Während dieser Übergänge werden die verschiedenen Objective-C NSObjects-Parameter in eine verwaltete Darstellung des Objekts umschlossen.
Die Runtime nimmt einen Verweis auf das systemeigene Objekt an und behält den Verweis bei, bis der letzte verwaltete Verweis auf das Objekt weg ist und der GC eine Chance hat, auszuführen.
In einigen Fällen ist es wichtig, dass die C#-Runtime keinen Verweis auf das systemeigene Objekt behält. Dies geschieht manchmal, wenn der zugrunde liegende native Code dem Lebenszyklus des Parameters ein besonderes Verhalten angefügt hat. Beispiel: Der Destruktor für den Parameter führt eine Bereinigungsaktion aus oder entsorgt eine wertvolle Ressource.
Dieses Attribut informiert die Runtime darüber, dass das Objekt nach Möglichkeit verworfen werden soll, wenn sie von Ihrer überschriebenen Methode zu Objective-C zurückkehren.
Die Regel ist einfach: Wenn die Runtime eine neue verwaltete Darstellung aus dem nativen Objekt erstellen musste, wird am Ende der Funktion die Aufbewahrungsanzahl für das systemeigene Objekt gelöscht, und die Handle-Eigenschaft des verwalteten Objekts wird gelöscht. Dies bedeutet, dass, wenn Sie einen Verweis auf das verwaltete Objekt beibehalten, dieser Verweis nutzlos wird (durch aufrufen von Methoden darauf wird eine Ausnahme ausgelöst).
Wenn das übergebene Objekt nicht erstellt wurde oder bereits eine ausstehende verwaltete Darstellung des Objekts vorhanden war, erfolgt die erzwungene Entsorgung nicht.
Konstruktoren
TransientAttribute() |
Initialisiert ein neues transientes Attribut. |