ACRef<T> ist eine generische Klasse. Der Typ T beschreibt von welchem Typ das zu referenzierende Objekt ist.
Das wichtigste Merkmal einer ACRef<T> ist der Zustand "IsAttached" der beschreibt, ob das referenzierte Objekt getrennt oder verbunden ist. Im getrennten Zustand hält die ACRef keine .NET-Referenz zu dem gekapselten Objekt bzw. zu einer Instanz des generischen Typs T. Mit dem Zugriff auf die Eigenschaft ValueT oder Value wird das zu referenzierende objekt sofort wieder verbunden.
Damit eine ACRef<T> im getrennten Zustand weiß mit welchem Objekt sie verbunden war, wird entweder die ACUrl gespeichert oder der EntityKey.
Wesentliche Eigenschaften:
Parameter | Beschreibung |
---|
T ValueT | Referenziertes Objekt (Component oder Entität). Beim Zugriff auf diese Eigenschaft wird das referenzierte Objekt automatisch verbunden falls es sich im getrennten Zustand befindet. |
---|
object value | ValueT als object. |
---|
bool IsObjLoaded | Überprüft ob ValueT nicht null ist. Beim Zugriff auf diese Eigenschaft wird das referenzierte Objekt automatisch verbunden falls es sich im getrennten Zustand befindet. |
---|
bool IsAttached | Prüft ob das referenzierte Objekt sich im verbundenen Zustand befindet (Attached). |
---|
bool IsWeakReference | Eine schwache Referenz ist eine Referenz die nicht verhindert, dass das referenzierte Objekt von iPlus-GarbageCollector eingesammelt wird. |
---|
RefInitMode Mode | Steuert das Verhalten für den automatischen Start oder Stop einer referenzierten Komponente. public enum RefInitMode : short { NoInstantiation = 0, AutoStart = 1, AutoStop = 2, AutoStartStop = 3, } |
---|
IACObject ParentACObject | Referenz zur Eltern-Komponente, die diesen Smart-Pointer hält bzw. besitzt. |
---|
string ACUrl | ACUrl falls eine ACComponent oder IACObject referenziert wird. |
---|
EntityKey EntityKey | Falls das referenzierte Objekt eine Entität ist dann wird der EntityKey gespeichert. |
---|
Wesentliche Methoden:
Methode | Beschreibung |
---|
void Attach() | Verbindet das referenzierte Objekt falls es sich im getrennten Zustand befindet. |
---|
void Detach(bool detachFromContext = false) | Trennt das referenzierte T-Objekt und speichert die Referenzinformation in der ACUrl or EntityKey-Eigenschaft. Falls Parameter "detachFromContext" true gesetzt wird, dann wird das referenzierte Entity-Objekt auch von seinem Datenbankkontext getrennt. |
---|
void AttachTo(IACObject parentACObject) | Verbindet das gekapselte Objekt an das Eltern-Objekt das diesen intelligenten Zeiger hält bzw. besitzt. Für Entity-Objekte übergeben Sie stattdessen den Datenbankkontext. |
---|