Condividi tramite


Grain Classe

Definizione

Classe base astratta per tutte le classi di granularità.

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
Ereditarietà
Grain
Derivato
Implementazioni

Costruttori

Grain()

Questo costruttore non deve mai essere richiamato. Viene esposta in modo che il codice client (sottoclassi di Grain) non sia necessario aggiungere un costruttore. Il codice client deve utilizzare la proprietà GrainFactory per ottenere un riferimento a un oggetto Grain.

Grain(IGrainContext, IGrainRuntime)

Gli implementatori granulari non devono esporre questo costruttore, ma possono scegliere di farlo. Questo costruttore è particolarmente utile per gli unit test in cui il codice di test può creare un oggetto Grain e sostituire IGrainIdentity e IGrainRuntime con valori double di test (mock/stub).

Grain(IGrainIdentity, IGrainRuntime)

Gli implementatori granulari non devono esporre questo costruttore, ma possono scegliere di farlo. Questo costruttore è particolarmente utile per gli unit test in cui il codice di test può creare un oggetto Grain e sostituire IGrainIdentity e IGrainRuntime con valori double di test (mock/stub).

Proprietà

GrainFactory

Ottiene un oggetto che può essere utilizzato per accedere ad altri grani. Null se questa granularità non è associata a un runtime, ad esempio quando viene creata direttamente per gli unit test.

GrainReference

Classe base astratta per tutte le classi di granularità.

IdentityString

Rappresentazione di stringa della siloIdentity di granularità, inclusi il tipo e la chiave primaria.

RuntimeIdentity

Identificatore univoco per il silo corrente. Non esiste alcun contenuto semantico per questa stringa, ma può essere utile per la registrazione.

ServiceProvider

Ottiene l'oggetto IServiceProvider gestito dal runtime. Null se questa granularità non è associata a un runtime, ad esempio quando viene creata direttamente per gli unit test.

Metodi

DeactivateOnIdle()

Disattivare questa attivazione della granularità dopo il completamento della chiamata al metodo granulare corrente. Questa chiamata contrassegnerà questa attivazione della granularità corrente da disattivare e rimuovere alla fine del metodo corrente. La chiamata successiva a questa granularità comporterà un'attivazione diversa da usare, che in genere significa che una nuova attivazione verrà creata automaticamente dal runtime.

DelayDeactivation(TimeSpan)

Disattivazione ritardata dell'attivazione almeno per la durata specificata. Un valore positivo timeSpan indica "impedire il GC di questa attivazione per tale intervallo di tempo". Un valore negativo timeSpan indica "annullare l'impostazione precedente della chiamata DelayDeactivation e eseguire questa attivazione in base alle normali impostazioni di Garbage Collection di attivazione". Il metodo DeactivateOnIdle annulla/esegue l'override di qualsiasi impostazione corrente "keep alive", rendendo immediatamente disponibile questa granularità per la disattivazione.

GetLogger()

Restituisce un oggetto logger che il codice di questa granularità può usare per la traccia. Il nome del logger verrà derivato dal nome della classe granulare.

GetLogger(String)

Restituisce un oggetto logger che il codice di questa granularità può usare per la traccia.

GetReminder(String)

Restituisce un promemoria registrato in precedenza.

GetReminders()

Restituisce un elenco di tutti i promemoria registrati dalla granularità.

GetStreamProvider(String)

Classe base astratta per tutte le classi di granularità.

GetStreamProviders()

Classe base astratta per tutte le classi di granularità.

MigrateOnIdle()

Avvia un tentativo di migrazione di questa istanza in un'altra posizione. La migrazione acquisisce l'oggetto corrente RequestContext, rendendolo disponibile per la directory di posizionamento dell'attivazione in modo che possa considerarlo quando si seleziona una nuova posizione. La migrazione verrà eseguita in modo asincrono, quando non vengono eseguite richieste e non si verificherà se il direttore di posizionamento dell'attivazione non seleziona una posizione alternativa.

OnActivateAsync()

Questo metodo viene chiamato alla fine del processo di attivazione di una granularità. Viene chiamato prima che tutti i messaggi siano stati inviati alla granularità. Per i grani con stato persistente dichiarato, questo metodo viene chiamato dopo che la proprietà State è stata popolata.

OnActivateAsync(CancellationToken)

Questo metodo viene chiamato alla fine del processo di attivazione di una granularità. Viene chiamato prima che tutti i messaggi siano stati inviati alla granularità. Per i grani con stato persistente dichiarato, questo metodo viene chiamato dopo che la proprietà State è stata popolata.

OnDeactivateAsync()

Questo metodo viene chiamato all'inizio del processo di disattivazione di una granularità.

OnDeactivateAsync(DeactivationReason, CancellationToken)

Questo metodo viene chiamato all'inizio del processo di disattivazione di una granularità.

Participate(IGrainLifecycle)

Classe base astratta per tutte le classi di granularità.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

Registra un promemoria permanente e affidabile per inviare notifiche regolari (promemoria) alla granularità. La granularità deve implementare l'interfaccia Orleans.IRemindable e i promemoria per questo tipo di granularità verranno inviati al ReceiveReminder metodo di callback. Se la granularità corrente viene disattivata quando viene attivato il timer, verrà creata una nuova attivazione di questo tipo di granularità per ricevere questo promemoria. Se esiste già un promemoria esistente con lo stesso nome, il promemoria verrà sovrascritto con questo nuovo promemoria. I promemoria verranno sempre ricevuti da un'attivazione di questo tipo di granularità, anche se esistono più attivazioni per questa granularità.

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

Registra un timer per inviare callback periodici a questa granularità.

UnregisterReminder(IGrainReminder)

Annulla la registrazione di un promemoria registrato in precedenza.

Implementazioni dell'interfaccia esplicita

IGrainBase.GrainContext

Classe base astratta per tutte le classi di granularità.

Metodi di estensione

DeactivateOnIdle(IGrainBase)

Disattivare questa attivazione granulare dopo il completamento della chiamata al metodo granulare corrente. Questa chiamata contrassegnerà questa attivazione della granularità corrente da disattivare e rimuovere alla fine del metodo corrente. La chiamata successiva a questa granularità comporterà un'attivazione diversa da usare, che in genere significa che una nuova attivazione verrà creata automaticamente dal runtime.

MigrateOnIdle(IGrainBase)

Avvia un tentativo di migrazione di questa istanza in un'altra posizione. La migrazione acquisisce l'oggetto corrente RequestContext, rendendolo disponibile per la directory di posizionamento dell'attivazione in modo che possa considerarlo quando si seleziona una nuova posizione. La migrazione verrà eseguita in modo asincrono, quando non vengono eseguite richieste e non si verificherà se il direttore di posizionamento dell'attivazione non seleziona una posizione alternativa.

AsReference(IAddressable, Type)

Restituisce un riferimento tipizzato alla granularità specificata.

AsReference<TGrainInterface>(IAddressable)

Restituisce un riferimento tipizzato alla granularità specificata.

BindGrainReference(IAddressable, IGrainFactory)

Associa il riferimento granulare all'oggetto specificato IGrainFactory.

Cast(IAddressable, Type)

Restituisce un riferimento tipizzato alla granularità specificata.

Cast<TGrainInterface>(IAddressable)

Restituisce un riferimento tipizzato alla granularità specificata.

GetGrainId(IAddressable)

Restituisce l'ID di granularità corrispondente alla granularità specificata.

GetPrimaryKey(IAddressable)

Restituisce la Guid rappresentazione di una chiave primaria granulare.

GetPrimaryKey(IAddressable, String)

Restituisce la Guid rappresentazione di una chiave primaria granulare.

GetPrimaryKeyLong(IAddressable)

Restituisce la long rappresentazione di una chiave primaria granulare.

GetPrimaryKeyLong(IAddressable, String)

Restituisce la long rappresentazione di una chiave primaria granulare.

GetPrimaryKeyString(IAddressable)

Restituisce la string chiave primaria della granularità.

IsPrimaryKeyBasedOnLong(IAddressable)

Restituisce un valore che indica se la parte della chiave primaria è di tipo long.

GetReminder(Grain, String)

Restituisce un promemoria registrato in precedenza.

GetReminder(IGrainBase, String)

Restituisce un promemoria registrato in precedenza.

GetReminders(Grain)

Restituisce un elenco di tutti i promemoria registrati dalla granularità.

GetReminders(IGrainBase)

Restituisce un elenco di tutti i promemoria registrati dalla granularità.

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

Registra un promemoria permanente e affidabile per inviare notifiche regolari (promemoria) alla granularità. La granularità deve implementare l'interfaccia Orleans.IRemindable e i promemoria per questo tipo di granularità verranno inviati al ReceiveReminder metodo di callback. Se la granularità corrente viene disattivata quando viene attivato il timer, verrà creata una nuova attivazione di questo tipo di granularità per ricevere questo promemoria. Se esiste già un promemoria esistente con lo stesso nome, il promemoria verrà sovrascritto con questo nuovo promemoria. I promemoria verranno sempre ricevuti da un'attivazione di questo tipo di granularità, anche se esistono più attivazioni per questa granularità.

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

Registra un promemoria permanente e affidabile per inviare notifiche regolari (promemoria) alla granularità. La granularità deve implementare l'interfaccia Orleans.IRemindable e i promemoria per questo tipo di granularità verranno inviati al ReceiveReminder metodo di callback. Se la granularità corrente viene disattivata quando viene attivato il timer, verrà creata una nuova attivazione di questo tipo di granularità per ricevere questo promemoria. Se esiste già un promemoria esistente con lo stesso nome, il promemoria verrà sovrascritto con questo nuovo promemoria. I promemoria verranno sempre ricevuti da un'attivazione di questo tipo di granularità, anche se esistono più attivazioni per questa granularità.

UnregisterReminder(Grain, IGrainReminder)

Annulla la registrazione di un promemoria registrato in precedenza.

UnregisterReminder(IGrainBase, IGrainReminder)

Annulla la registrazione di un promemoria registrato in precedenza.

GetStreamProvider(Grain, String)

Ottiene il provider di flusso con l'oggetto specificato name.

GetStreamProvider(IGrainBase, String)

Ottiene il provider di flusso con l'oggetto specificato name.

GetLogger(Grain)

Restituisce un oggetto logger che il codice di questa granularità può usare per la traccia. Il nome del logger verrà derivato dal nome della classe granulare.

GetLogger(Grain, String)

Restituisce un oggetto logger che il codice di questa granularità può usare per la traccia.

GetGrainStorage(Grain, IServiceProvider)

Acquisire il provider di archiviazione associato al tipo di granularità.

Si applica a