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 esposto in modo che il codice client (sottoclassi di Grain) non sia necessario aggiungere un costruttore. Il codice client deve usare 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 (mocks/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 (mocks/stub).

Proprietà

GrainContext

Classe base astratta per tutte le classi di granularità.

GrainFactory

Ottiene un oggetto che può essere utilizzato per accedere ad altri grani. Null se questo granularità non è associato a un runtime, ad esempio quando viene creato 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 contenuto semantico per questa stringa, ma può essere utile per la registrazione.

ServiceProvider

Ottiene l'oggetto IServiceProvider gestito dal runtime. Null se questo granularità non è associato a un runtime, ad esempio quando viene creato 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 significa "impedire il GC di questa attivazione per tale intervallo di tempo". Un valore negativo timeSpan significa "annullare l'impostazione precedente della chiamata DelayDeactivation e fare in modo che l'attivazione si comporti 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 questo granulare 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 dell'istanza in un'altra posizione. La migrazione acquisisce l'RequestContextcorrente, rendendola disponibile per la directory di posizionamento dell'attivazione in modo che possa considerarla quando si seleziona una nuova posizione. La migrazione verrà eseguita in modo asincrono, quando non vengono eseguite richieste e non si verificherà se il director 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 granularità verranno inviati al metodo di callback ReceiveReminder. Se la granularità corrente viene disattivata quando il timer viene attivato, verrà creata una nuova attivazione di questo granulare 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 granularità, anche se esistono più attivazioni per questo granularità.

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

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 dell'istanza in un'altra posizione. La migrazione acquisisce l'RequestContextcorrente, rendendola disponibile per la directory di posizionamento dell'attivazione in modo che possa considerarla quando si seleziona una nuova posizione. La migrazione verrà eseguita in modo asincrono, quando non vengono eseguite richieste e non si verificherà se il director di posizionamento dell'attivazione non seleziona una posizione alternativa.

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

Crea un timer di granularità.

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

Crea un timer di granularità.

RegisterGrainTimer(IGrainBase, Func<Task>, GrainTimerCreationOptions)

Classe base astratta per tutte le classi di granularità.

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

Crea un timer di granularità.

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

Crea un timer di granularità.

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

Crea un timer di granularità.

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

Classe base astratta per tutte le classi di granularità.

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

Crea un timer di granularità.

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 al IGrainFactoryfornito.

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 granulare corrispondente alla granularità specificata.

GetPrimaryKey(IAddressable)

Restituisce la rappresentazione Guid di una chiave primaria granulare.

GetPrimaryKey(IAddressable, String)

Restituisce la rappresentazione Guid di una chiave primaria granulare.

GetPrimaryKeyLong(IAddressable)

Restituisce la rappresentazione long di una chiave primaria granulare.

GetPrimaryKeyLong(IAddressable, String)

Restituisce la rappresentazione long di una chiave primaria granulare.

GetPrimaryKeyString(IAddressable)

Restituisce l'string chiave primaria della granularità.

IsPrimaryKeyBasedOnLong(IAddressable)

Restituisce un valore che indica se 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 granularità verranno inviati al metodo di callback ReceiveReminder. Se la granularità corrente viene disattivata quando il timer viene attivato, verrà creata una nuova attivazione di questo granulare 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 granularità, anche se esistono più attivazioni per questo 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 granularità verranno inviati al metodo di callback ReceiveReminder. Se la granularità corrente viene disattivata quando il timer viene attivato, verrà creata una nuova attivazione di questo granulare 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 granularità, anche se esistono più attivazioni per questo 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 il namespecificato.

GetStreamProvider(IGrainBase, String)

Ottiene il provider di flusso con il namespecificato.

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