Freigeben über


Grain Klasse

Definition

Die abstrakte Basisklasse für alle Kornklassen.

public abstract class Grain : Orleans.Runtime.IAddressable
public abstract class Grain : Orleans.ILifecycleParticipant<Orleans.Runtime.IGrainLifecycle>, Orleans.Runtime.IAddressable
public abstract class Grain : Orleans.IGrainBase, Orleans.Runtime.IAddressable
type Grain = class
    interface IAddressable
type Grain = class
    interface IAddressable
    interface ILifecycleParticipant<IGrainLifecycle>
type Grain = class
    interface IGrainBase
    interface IAddressable
Public MustInherit Class Grain
Implements IAddressable
Public MustInherit Class Grain
Implements IAddressable, ILifecycleParticipant(Of IGrainLifecycle)
Public MustInherit Class Grain
Implements IAddressable, IGrainBase
Vererbung
Grain
Abgeleitet
Implementiert

Konstruktoren

Grain()

Dieser Konstruktor sollte nie aufgerufen werden. Wir machen sie verfügbar, damit Clientcode (Unterklassen von Grain) keinen Konstruktor hinzufügen müssen. Clientcode sollte die GrainFactory-Eigenschaft verwenden, um einen Verweis auf ein Grain abzurufen.

Grain(IGrainContext, IGrainRuntime)

Getreideimplementierer müssen diesen Konstruktor nicht verfügbar machen, können dies jedoch tun. Dieser Konstruktor ist besonders nützlich für Komponententests, bei denen Testcode einen Grain erstellen und die IGrainIdentity und IGrainRuntime durch Testdoppeln (Mocks/Stubs) ersetzen kann.

Grain(IGrainIdentity, IGrainRuntime)

Getreideimplementierer müssen diesen Konstruktor nicht verfügbar machen, können dies jedoch tun. Dieser Konstruktor ist besonders nützlich für Komponententests, bei denen Testcode einen Grain erstellen und die IGrainIdentity und IGrainRuntime durch Testdoppeln (Mocks/Stubs) ersetzen kann.

Eigenschaften

GrainContext

Die abstrakte Basisklasse für alle Kornklassen.

GrainFactory

Ruft ein Objekt ab, das für den Zugriff auf andere Getreide verwendet werden kann. Null, wenn dieser Korn nicht einer Runtime zugeordnet ist, z. B. wenn sie direkt für Komponententests erstellt wird.

GrainReference

Die abstrakte Basisklasse für alle Kornklassen.

IdentityString

Zeichenfolgendarstellung der SiloIdentity des Korns, einschließlich Typ und Primärschlüssel.

RuntimeIdentity

Ein eindeutiger Bezeichner für den aktuellen Silo. Für diese Zeichenfolge gibt es keinen semantischen Inhalt, kann aber für die Protokollierung hilfreich sein.

ServiceProvider

Ruft den von der Laufzeit verwalteten IServiceProvider ab. Null, wenn dieser Korn nicht einer Runtime zugeordnet ist, z. B. wenn sie direkt für Komponententests erstellt wird.

Methoden

DeactivateOnIdle()

Deaktivieren Sie diese Aktivierung des Korns, nachdem der aktuelle Kornmethodenaufruf abgeschlossen wurde. Dieser Aufruf markiert diese Aktivierung des aktuellen Korns, das deaktiviert und am Ende der aktuellen Methode entfernt wird. Der nächste Aufruf dieses Korns führt dazu, dass eine andere Aktivierung verwendet wird, was typischerweise bedeutet, dass eine neue Aktivierung automatisch von der Laufzeit erstellt wird.

DelayDeactivation(TimeSpan)

Verzögern der Deaktivierung dieser Aktivierung mindestens für die angegebene Zeitdauer. Ein positiver timeSpan Wert bedeutet "GC dieser Aktivierung für diesen Zeitraum verhindern". Ein negativer timeSpan Wert bedeutet "die vorherige Einstellung des DelayDeactivation-Aufrufs abbrechen und dieses Aktivierungsverhalten basierend auf den regulären Einstellungen für die Aktivierungsbereinigung vornehmen". Die DeactivateOnIdle-Methode würde alle aktuellen "Keep Alive"-Einstellungen rückgängig machen/ außer Kraft setzen, sodass dieses Korn sofort für die Deaktivierung verfügbar ist.

GetLogger()

Gibt ein Loggerobjekt zurück, das der Code dieses Korns für die Ablaufverfolgung verwenden kann. Der Name des Loggers wird vom Kornklassennamen abgeleitet.

GetLogger(String)

Gibt ein Loggerobjekt zurück, das der Code dieses Korns für die Ablaufverfolgung verwenden kann.

GetReminder(String)

Gibt eine zuvor registrierte Erinnerung zurück.

GetReminders()

Gibt eine Liste aller Erinnerungen zurück, die vom Korn registriert wurden.

GetStreamProvider(String)

Die abstrakte Basisklasse für alle Kornklassen.

GetStreamProviders()

Die abstrakte Basisklasse für alle Kornklassen.

MigrateOnIdle()

Startet einen Versuch, diese Instanz an einen anderen Speicherort zu migrieren. Die Migration erfasst die aktuelle RequestContext, sodass sie dem Platzierungsdirektor der Aktivierung zur Verfügung gestellt wird, damit sie beim Auswählen eines neuen Speicherorts berücksichtigt werden kann. Die Migration erfolgt asynchron, wenn keine Anforderungen ausgeführt werden, und tritt nicht auf, wenn der Platzierungsdirektor der Aktivierung keinen alternativen Speicherort auswählt.

OnActivateAsync()

Diese Methode wird am Ende des Prozesses der Aktivierung eines Getreides aufgerufen. Es wird aufgerufen, bevor alle Nachrichten an das Korn verteilt wurden. Bei Körnern mit deklariertem persistentem Zustand wird diese Methode aufgerufen, nachdem die State-Eigenschaft aufgefüllt wurde.

OnActivateAsync(CancellationToken)

Diese Methode wird am Ende des Prozesses der Aktivierung eines Getreides aufgerufen. Es wird aufgerufen, bevor alle Nachrichten an das Korn verteilt wurden. Bei Körnern mit deklariertem persistentem Zustand wird diese Methode aufgerufen, nachdem die State-Eigenschaft aufgefüllt wurde.

OnDeactivateAsync()

Diese Methode wird am Anfang des Prozesses der Deaktivierung eines Getreides aufgerufen.

OnDeactivateAsync(DeactivationReason, CancellationToken)

Diese Methode wird am Anfang des Prozesses der Deaktivierung eines Getreides aufgerufen.

Participate(IGrainLifecycle)

Die abstrakte Basisklasse für alle Kornklassen.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

Registriert eine dauerhafte, zuverlässige Erinnerung, um regelmäßige Benachrichtigungen (Erinnerungen) an das Korn zu senden. Das Korn muss die Orleans.IRemindable Schnittstelle implementieren, und Erinnerungen für dieses Korn werden an die ReceiveReminder Rückrufmethode gesendet. Wenn das aktuelle Korn deaktiviert wird, wenn der Timer ausgelöst wird, wird eine neue Aktivierung dieses Korns erstellt, um diese Erinnerung zu erhalten. Wenn bereits eine vorhandene Erinnerung mit demselben Namen vorhanden ist, wird diese Erinnerung mit dieser neuen Erinnerung überschrieben. Erinnerungen werden immer durch eine Aktivierung dieses Korns empfangen, auch wenn für dieses Korn mehrere Aktivierungen vorhanden sind.

RegisterTimer(Func<Object,Task>, Object, TimeSpan, TimeSpan)
Veraltet.

Registriert einen Timer, um regelmäßige Rückrufe an dieses Korn zu senden.

UnregisterReminder(IGrainReminder)

Hebt die Registrierung einer zuvor registrierten Erinnerung auf.

Explizite Schnittstellenimplementierungen

IGrainBase.GrainContext

Die abstrakte Basisklasse für alle Kornklassen.

Erweiterungsmethoden

DeactivateOnIdle(IGrainBase)

Deaktivieren Sie diese Kornaktivierung nach Abschluss des aktuellen Kornmethodenaufrufs. Dieser Aufruf markiert diese Aktivierung des aktuellen Korns, das deaktiviert und am Ende der aktuellen Methode entfernt wird. Der nächste Aufruf dieses Korns führt dazu, dass eine andere Aktivierung verwendet wird, was typischerweise bedeutet, dass eine neue Aktivierung automatisch von der Laufzeit erstellt wird.

MigrateOnIdle(IGrainBase)

Startet einen Versuch, diese Instanz an einen anderen Speicherort zu migrieren. Die Migration erfasst die aktuelle RequestContext, sodass sie dem Platzierungsdirektor der Aktivierung zur Verfügung gestellt wird, damit sie beim Auswählen eines neuen Speicherorts berücksichtigt werden kann. Die Migration erfolgt asynchron, wenn keine Anforderungen ausgeführt werden, und tritt nicht auf, wenn der Platzierungsdirektor der Aktivierung keinen alternativen Speicherort auswählt.

RegisterGrainTimer(IGrainBase, Func<CancellationToken,Task>, GrainTimerCreationOptions)

Erstellt einen Korntimer.

RegisterGrainTimer(IGrainBase, Func<CancellationToken,Task>, TimeSpan, TimeSpan)

Erstellt einen Korntimer.

RegisterGrainTimer(IGrainBase, Func<Task>, GrainTimerCreationOptions)

Die abstrakte Basisklasse für alle Kornklassen.

RegisterGrainTimer(IGrainBase, Func<Task>, TimeSpan, TimeSpan)

Erstellt einen Korntimer.

RegisterGrainTimer<TState>(IGrainBase, Func<TState,CancellationToken,Task>, TState, GrainTimerCreationOptions)

Erstellt einen Korntimer.

RegisterGrainTimer<TState>(IGrainBase, Func<TState,CancellationToken,Task>, TState, TimeSpan, TimeSpan)

Erstellt einen Korntimer.

RegisterGrainTimer<TState>(IGrainBase, Func<TState,Task>, TState, GrainTimerCreationOptions)

Die abstrakte Basisklasse für alle Kornklassen.

RegisterGrainTimer<TState>(IGrainBase, Func<TState,Task>, TState, TimeSpan, TimeSpan)

Erstellt einen Korntimer.

AsReference(IAddressable, Type)

Gibt einen typierten Verweis auf das angegebene Korn zurück.

AsReference<TGrainInterface>(IAddressable)

Gibt einen typierten Verweis auf das angegebene Korn zurück.

BindGrainReference(IAddressable, IGrainFactory)

Bindet den Kornverweis an die bereitgestellte IGrainFactory.

Cast(IAddressable, Type)

Gibt einen typierten Verweis auf das angegebene Korn zurück.

Cast<TGrainInterface>(IAddressable)

Gibt einen typierten Verweis auf das angegebene Korn zurück.

GetGrainId(IAddressable)

Gibt die Korn-ID zurück, die dem bereitgestellten Getreide entspricht.

GetPrimaryKey(IAddressable)

Gibt die Guid Darstellung eines Getreide-Primärschlüssels zurück.

GetPrimaryKey(IAddressable, String)

Gibt die Guid Darstellung eines Getreide-Primärschlüssels zurück.

GetPrimaryKeyLong(IAddressable)

Gibt die long Darstellung eines Getreide-Primärschlüssels zurück.

GetPrimaryKeyLong(IAddressable, String)

Gibt die long Darstellung eines Getreide-Primärschlüssels zurück.

GetPrimaryKeyString(IAddressable)

Gibt den string Primärschlüssel des Korns zurück.

IsPrimaryKeyBasedOnLong(IAddressable)

Gibt zurück, ob ein Teil des Primärschlüssels vom Typ longist.

GetReminder(Grain, String)

Gibt eine zuvor registrierte Erinnerung zurück.

GetReminder(IGrainBase, String)

Gibt eine zuvor registrierte Erinnerung zurück.

GetReminders(Grain)

Gibt eine Liste aller Erinnerungen zurück, die vom Korn registriert wurden.

GetReminders(IGrainBase)

Gibt eine Liste aller Erinnerungen zurück, die vom Korn registriert wurden.

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

Registriert eine dauerhafte, zuverlässige Erinnerung, um regelmäßige Benachrichtigungen (Erinnerungen) an das Korn zu senden. Das Korn muss die Orleans.IRemindable Schnittstelle implementieren, und Erinnerungen für dieses Korn werden an die ReceiveReminder Rückrufmethode gesendet. Wenn das aktuelle Korn deaktiviert wird, wenn der Timer ausgelöst wird, wird eine neue Aktivierung dieses Korns erstellt, um diese Erinnerung zu erhalten. Wenn bereits eine vorhandene Erinnerung mit demselben Namen vorhanden ist, wird diese Erinnerung mit dieser neuen Erinnerung überschrieben. Erinnerungen werden immer durch eine Aktivierung dieses Korns empfangen, auch wenn für dieses Korn mehrere Aktivierungen vorhanden sind.

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

Registriert eine dauerhafte, zuverlässige Erinnerung, um regelmäßige Benachrichtigungen (Erinnerungen) an das Korn zu senden. Das Korn muss die Orleans.IRemindable Schnittstelle implementieren, und Erinnerungen für dieses Korn werden an die ReceiveReminder Rückrufmethode gesendet. Wenn das aktuelle Korn deaktiviert wird, wenn der Timer ausgelöst wird, wird eine neue Aktivierung dieses Korns erstellt, um diese Erinnerung zu erhalten. Wenn bereits eine vorhandene Erinnerung mit demselben Namen vorhanden ist, wird diese Erinnerung mit dieser neuen Erinnerung überschrieben. Erinnerungen werden immer durch eine Aktivierung dieses Korns empfangen, auch wenn für dieses Korn mehrere Aktivierungen vorhanden sind.

UnregisterReminder(Grain, IGrainReminder)

Hebt die Registrierung einer zuvor registrierten Erinnerung auf.

UnregisterReminder(IGrainBase, IGrainReminder)

Hebt die Registrierung einer zuvor registrierten Erinnerung auf.

GetStreamProvider(Grain, String)

Ruft den Datenstromanbieter mit dem angegebenen nameab.

GetStreamProvider(IGrainBase, String)

Ruft den Datenstromanbieter mit dem angegebenen nameab.

GetLogger(Grain)

Gibt ein Loggerobjekt zurück, das der Code dieses Korns für die Ablaufverfolgung verwenden kann. Der Name des Loggers wird vom Kornklassennamen abgeleitet.

GetLogger(Grain, String)

Gibt ein Loggerobjekt zurück, das der Code dieses Korns für die Ablaufverfolgung verwenden kann.

GetGrainStorage(Grain, IServiceProvider)

Erwerben Sie den Speicheranbieter, der dem Korntyp zugeordnet ist.

Gilt für: