Поделиться через


JournaledGrain<TGrainState,TEventBase> Класс

Определение

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

public abstract class JournaledGrain<TGrainState,TEventBase> : Orleans.LogConsistency.LogConsistentGrainBase<TGrainState>, Orleans.LogConsistency.ILogConsistentGrain, Orleans.LogConsistency.ILogViewAdaptorHost<TGrainState,TEventBase>, Orleans.MultiCluster.ILogConsistencyProtocolParticipant where TGrainState : class, new() where TEventBase : class
public abstract class JournaledGrain<TGrainState,TEventBase> : Orleans.LogConsistency.LogConsistentGrain<TGrainState>, Orleans.IGrain, Orleans.LogConsistency.ILogViewAdaptorHost<TGrainState,TEventBase>, Orleans.MultiCluster.ILogConsistencyProtocolParticipant where TGrainState : class, new() where TEventBase : class
public abstract class JournaledGrain<TGrainState,TEventBase> : Orleans.EventSourcing.LogConsistentGrain<TGrainState>, Orleans.EventSourcing.ILogConsistencyProtocolParticipant, Orleans.EventSourcing.ILogViewAdaptorHost<TGrainState,TEventBase>, Orleans.IGrain where TGrainState : class, new() where TEventBase : class
type JournaledGrain<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)> = class
    inherit LogConsistentGrainBase<'GrainState (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState))>
    interface ILogConsistentGrain
    interface ILogConsistencyProtocolParticipant
    interface IGrain
    interface IAddressable
    interface ILogViewAdaptorHost<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)>
    interface IConnectionIssueListener
type JournaledGrain<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)> = class
    inherit LogConsistentGrain<'GrainState (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState))>
    interface ILogConsistencyProtocolParticipant
    interface IGrain
    interface IAddressable
    interface ILogViewAdaptorHost<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)>
    interface IConnectionIssueListener
Public MustInherit Class JournaledGrain(Of TGrainState, TEventBase)
Inherits LogConsistentGrainBase(Of TGrainState)
Implements ILogConsistencyProtocolParticipant, ILogConsistentGrain, ILogViewAdaptorHost(Of TGrainState, TEventBase)
Public MustInherit Class JournaledGrain(Of TGrainState, TEventBase)
Inherits LogConsistentGrain(Of TGrainState)
Implements IGrain, ILogConsistencyProtocolParticipant, ILogViewAdaptorHost(Of TGrainState, TEventBase)

Параметры типа

TGrainState

Тип состояния зерна, т. е. статистическое представление журнала событий.

TEventBase

Общий базовый класс для событий

Наследование
JournaledGrain<TGrainState,TEventBase>
Наследование
LogConsistentGrain<TGrainState>
JournaledGrain<TGrainState,TEventBase>
Наследование
LogConsistentGrain<TGrainState>
JournaledGrain<TGrainState,TEventBase>
Производный
Реализации

Конструкторы

JournaledGrain<TGrainState,TEventBase>()

Инициализирует новый экземпляр класса JournaledGrain<TGrainState,TEventBase>.

JournaledGrain<TGrainState,TEventBase>(IGrainIdentity, IGrainRuntime)

Этот конструктор особенно полезен для модульного тестирования, где тестовый код может создать grain и заменить IGrainIdentity, IGrainRuntime и State двойными тестами (макеты и заглушки).

Свойства

DefaultAdaptorFactory

Если не указан поставщик согласованности журналов, сохраните состояние версии с помощью поставщика хранилища по умолчанию.

GrainContext

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от Grain)
GrainFactory

Получает объект, который можно использовать для доступа к другим зернам. Значение NULL, если это зерно не связано с средой выполнения, например при создании непосредственно для модульного тестирования.

(Унаследовано от Grain)
GrainReference

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от Grain)
IdentityString

Строковое представление SiloIdentity зерна, включая тип и первичный ключ.

(Унаследовано от Grain)
RuntimeIdentity

Уникальный идентификатор текущего сило. В этой строке нет семантического содержимого, но это может быть полезно для ведения журнала.

(Унаследовано от Grain)
ServiceProvider

Возвращает IServiceProvider, управляемый средой выполнения. Значение NULL, если это зерно не связано с средой выполнения, например при создании непосредственно для модульного тестирования.

(Унаследовано от Grain)
State

Возвращает текущее подтвержденное состояние. Включает только подтвержденные события.

TentativeState

Возвращает текущее предварительное состояние. Включает как подтвержденные, так и неподтвержденные события.

UnconfirmedEvents

Возвращает текущую очередь неподтвержденных событий.

UnresolvedConnectionIssues

Возвращает список всех проблем с подключением, которые в настоящее время не решены.

Version

Возвращает версию текущего подтвержденного состояния. Равно общему количеству подтвержденных событий.

Методы

ConfirmEvents()

Ожидает, пока все ранее поднятые события не были подтверждены.

дождитесь этого после вызова одного или нескольких событий, чтобы обеспечить сохранение событий перед продолжением или обеспечить надежную согласованность (линейнейность), даже если существует несколько экземпляров этого зерна.

DeactivateOnIdle()

Деактивируйте эту активацию зерна после завершения текущего вызова метода зерна. Этот вызов помечает эту активацию текущего зерна, который будет деактивирован и удален в конце текущего метода. Следующий вызов этого зерна приведет к использованию другой активации, что обычно означает, что новая активация будет создана автоматически средой выполнения.

(Унаследовано от Grain)
DelayDeactivation(TimeSpan)

Задержка деактивации этой активации по крайней мере в течение указанного периода времени. Положительное значение timeSpan означает "запретить GC этой активации в течение этого периода времени". Отрицательное значение timeSpan означает "отмена предыдущего параметра вызова DelayDeactivation и выполнение этой активации в зависимости от обычных параметров сборки мусора активации". Метод ДеактивацииOnIdle отменяет или переопределяет любой текущий параметр "сохранить в живых", что делает это зерно немедленно доступным для деактивации.

(Унаследовано от Grain)
DisableStatsCollection()

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

EnableStatsCollection()

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

GetLogger()

Возвращает объект средства ведения журнала, который код этого зерна может использовать для трассировки. Имя средства ведения журнала будет производным от имени класса зерна.

(Унаследовано от Grain)
GetLogger(String)

Возвращает объект средства ведения журнала, который код этого зерна может использовать для трассировки.

(Унаследовано от Grain)
GetReminder(String)

Возвращает ранее зарегистрированное напоминание.

(Унаследовано от Grain)
GetReminders()

Возвращает список всех напоминаний, зарегистрированных зерном.

(Унаследовано от Grain)
GetStats()

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

GetStreamProvider(String)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от Grain)
GetStreamProviders()

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от Grain)
InstallAdaptor(ILogViewAdaptorFactory, Object, String, IGrainStorage, ILogConsistencyProtocolServices)

Вызывается сразу после создания зерна, чтобы установить адаптер. Поставщик согласованности журналов содержит метод фабрики, который создает адаптер с выбранными типами для этого зерна.

InstallAdaptor(ILogViewAdaptorFactory, Object, String, IGrainStorage, ILogConsistencyProtocolServices)

Вызывается сразу после создания зерна, чтобы установить адаптер. Поставщик согласованности журналов содержит метод фабрики, который создает адаптер с выбранными типами для этого зерна.

MigrateOnIdle()

Запускает попытку переноса этого экземпляра в другое расположение. Миграция фиксирует текущую RequestContext, что делает его доступным для директора размещения активации, чтобы он смог рассмотреть его при выборе нового расположения. Миграция будет выполняться асинхронно, если запросы не выполняются, и не произойдет, если директор размещения активации не выбирает альтернативное расположение.

(Унаследовано от Grain)
OnActivateAsync()

По умолчанию после активации журнальное зерно ожидает, пока он не загрузит последнее представление из хранилища. Подклассы могут переопределить это поведение и пропустить ожидание при необходимости.

OnActivateAsync()

Этот метод вызывается в конце процесса активации зерна. Он вызывается до отправки сообщений в зерно. Для зерна с объявленным постоянным состоянием этот метод вызывается после заполнения свойства State.

(Унаследовано от Grain)
OnActivateAsync(CancellationToken)

По умолчанию после активации журнальное зерно ожидает, пока он не загрузит последнее представление из хранилища. Подклассы могут переопределить это поведение и пропустить ожидание при необходимости.

OnActivateAsync(CancellationToken)

Этот метод вызывается в конце процесса активации зерна. Он вызывается до отправки сообщений в зерно. Для зерна с объявленным постоянным состоянием этот метод вызывается после заполнения свойства State.

(Унаследовано от Grain)
OnConnectionIssue(ConnectionIssue)

Вызывается, когда базовый протокол сохраняемости или репликации возникает в некоторых проблемах подключения.

Переопределите это для отслеживания работоспособности протокола согласованности журналов и (или) настройки задержек повторных попыток. Все создаваемые исключения перехватываются и регистрируются ILogViewAdaptorFactory.

OnConnectionIssue(ConnectionIssue)

Вызывается, когда базовый протокол сохраняемости или репликации возникает в некоторых проблемах подключения.

Переопределите это для отслеживания работоспособности протокола согласованности журналов и (или) настройки задержек повторных попыток. Все создаваемые исключения перехватываются и регистрируются ILogConsistencyProvider.

OnConnectionIssueResolved(ConnectionIssue)

Вызывается при устранении ранее сообщаемой проблемы подключения.

Переопределите это, чтобы отслеживать работоспособность протокола согласованности журналов. Все создаваемые исключения перехватываются и регистрируются ILogConsistencyProvider.

OnConnectionIssueResolved(ConnectionIssue)

Вызывается при устранении ранее сообщаемой проблемы подключения.

Переопределите это, чтобы отслеживать работоспособность протокола согласованности журналов. Все создаваемые исключения перехватываются и регистрируются ILogViewAdaptorFactory.

OnDeactivateAsync()

Этот метод вызывается в начале процесса деактивации зерна.

(Унаследовано от Grain)
OnDeactivateAsync(DeactivationReason, CancellationToken)

Этот метод вызывается в начале процесса деактивации зерна.

(Унаследовано от Grain)
OnStateChanged()

Вызывается после изменения подтвержденного состояния (т. е. подтвержденного номера версии больше).

Переопределите это, чтобы реагировать на изменения подтвержденного состояния.

OnTentativeStateChanged()

Вызывается всякий раз, когда предварительное состояние может измениться из-за локальных или удаленных событий.

Переопределите это, чтобы реагировать на изменения состояния.

Participate(IGrainLifecycle)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от Grain)
Participate(IGrainLifecycle)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от LogConsistentGrain<TView>)
Participate(IGrainLifecycle)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от LogConsistentGrain<TView>)
RaiseConditionalEvent<TEvent>(TEvent)

Условное создание события. Выполняется только в том случае, если нет конфликтов, то есть никакие другие события не были вызваны в то же время.

RaiseConditionalEvents<TEvent>(IEnumerable<TEvent>)

Вызывает несколько событий, как атомарную последовательность, условно. Выполняется только в том случае, если нет конфликтов, то есть никакие другие события не были вызваны в то же время.

RaiseEvent<TEvent>(TEvent)

Вызывает событие.

RaiseEvents<TEvent>(IEnumerable<TEvent>)

Вызов нескольких событий в виде атомарной последовательности.

RefreshNow()

Извлекает последнее состояние и подтверждает все ранее созданные события. Фактически это обеспечивает синхронизацию с глобальным состоянием.

Дождитесь этого перед чтением состояния, чтобы обеспечить строжную согласованность (линейная доступность) даже в нескольких экземплярах этого зерна.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

Регистрирует постоянное, надежное напоминание для отправки регулярных уведомлений (напоминаний) на зерно. Зерно должно реализовать интерфейс Orleans.IRemindable, а напоминания об этом зерне будут отправлены в метод обратного вызова ReceiveReminder. Если текущее зерно деактивируется при срабатывании таймера, для получения этого напоминания будет создана новая активация этого зерна. Если существующее напоминание с тем же именем уже существует, это напоминание будет перезаписан с этим новым напоминанием. Напоминания всегда будут получены одной активацией этого зерна, даже если для этого зерна существует несколько активаций.

(Унаследовано от Grain)
RegisterTimer(Func<Object,Task>, Object, TimeSpan, TimeSpan)
Устаревшие..

Регистрирует таймер для отправки периодических обратных вызовов в это зерно.

(Унаследовано от Grain)
RetrieveConfirmedEvents(Int32, Int32)

Извлекает сегмент подтвержденной последовательности событий, возможно, из хранилища. Вызывает NotSupportedException, если события недоступны для чтения. Доступны ли события и насколько долго они зависят от используемых поставщиков и способа их настройки.

TransitionState(TGrainState, TEventBase)

Определяет, как применять события к состоянию. Если она не переопределяется в подклассе, она вызывает динамическую функцию Apply в состоянии с событием в качестве параметра. Все исключения, создаваемые этим методом, перехватываются и регистрируются поставщиком представления журнала.

Переопределите эту настройку, чтобы настроить переход состояния для данного события.

UnregisterReminder(IGrainReminder)

Отменяет регистрацию ранее зарегистрированного напоминания.

(Унаследовано от Grain)

Явные реализации интерфейса

IConnectionIssueListener.OnConnectionIssue(ConnectionIssue)

вызывается адаптером по проблемам подключения.

IConnectionIssueListener.OnConnectionIssue(ConnectionIssue)

вызывается адаптером по проблемам подключения.

IConnectionIssueListener.OnConnectionIssueResolved(ConnectionIssue)

Вызывается адаптером при устранении проблемы с подключением.

IConnectionIssueListener.OnConnectionIssueResolved(ConnectionIssue)

вызывается адаптером при устранении проблемы с подключением.

IGrainBase.GrainContext

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

(Унаследовано от Grain)
ILogConsistencyProtocolParticipant.DeactivateProtocolParticipant()

Уведомление адаптера представления журнала об деактивации

ILogConsistencyProtocolParticipant.DeactivateProtocolParticipant()

Уведомление адаптера представления журнала об деактивации

ILogConsistencyProtocolParticipant.OnMultiClusterConfigurationChange(MultiClusterConfiguration)

Получите изменение конфигурации, передайте его в адаптер представления журнала.

ILogConsistencyProtocolParticipant.OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

Получение сообщения протокола от других кластеров, переданное адаптеру представления журнала.

ILogConsistencyProtocolParticipant.PostActivateProtocolParticipant()

Уведомлять адаптер представления журнала активации (вызывается после активации на уровне пользователя)

ILogConsistencyProtocolParticipant.PostActivateProtocolParticipant()

Уведомлять адаптер представления журнала активации (вызывается после активации на уровне пользователя)

ILogConsistencyProtocolParticipant.PreActivateProtocolParticipant()

Уведомлять адаптер представления журнала активации (вызывается до активации на уровне пользователя)

ILogConsistencyProtocolParticipant.PreActivateProtocolParticipant()

Уведомлять адаптер представления журнала активации (вызывается до активации на уровне пользователя)

ILogConsistentGrain.DefaultAdaptorFactory

Если не указан поставщик согласованности журналов, сохраните состояние версии с помощью поставщика хранилища по умолчанию.

ILogConsistentGrain.InstallAdaptor(ILogViewAdaptorFactory, Object, String, IStorageProvider, ILogConsistencyProtocolServices)

Вызывается сразу после создания зерна, чтобы установить адаптер. Поставщик согласованности журналов содержит метод фабрики, который создает адаптер с выбранными типами для этого зерна.

ILogViewAdaptorHost<TGrainState,TEventBase>.OnViewChanged(Boolean, Boolean)

Вызывается адаптером при изменении состояния.

ILogViewAdaptorHost<TGrainState,TEventBase>.OnViewChanged(Boolean, Boolean)

вызывается адаптером при изменении состояния.

ILogViewAdaptorHost<TGrainState,TEventBase>.UpdateView(TGrainState, TEventBase)

Вызывается адаптером для обновления представления при добавлении записей.

ILogViewAdaptorHost<TGrainState,TEventBase>.UpdateView(TGrainState, TEventBase)

вызывается адаптером для обновления представления при добавлении записей.

Методы расширения

DeactivateOnIdle(IGrainBase)

Деактивируйте эту активацию зерна после завершения текущего вызова метода зерна. Этот вызов помечает эту активацию текущего зерна, который будет деактивирован и удален в конце текущего метода. Следующий вызов этого зерна приведет к использованию другой активации, что обычно означает, что новая активация будет создана автоматически средой выполнения.

MigrateOnIdle(IGrainBase)

Запускает попытку переноса этого экземпляра в другое расположение. Миграция фиксирует текущую RequestContext, что делает его доступным для директора размещения активации, чтобы он смог рассмотреть его при выборе нового расположения. Миграция будет выполняться асинхронно, если запросы не выполняются, и не произойдет, если директор размещения активации не выбирает альтернативное расположение.

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

Создает таймер зерна.

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

Создает таймер зерна.

RegisterGrainTimer(IGrainBase, Func<Task>, GrainTimerCreationOptions)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

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

Создает таймер зерна.

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

Создает таймер зерна.

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

Создает таймер зерна.

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

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

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

Создает таймер зерна.

AsReference(IAddressable, Type)

Возвращает типизированные ссылки на предоставленное зерно.

AsReference<TGrainInterface>(IAddressable)

Возвращает типизированные ссылки на предоставленное зерно.

BindGrainReference(IAddressable, IGrainFactory)

Привязывает ссылку на зерно к предоставленному IGrainFactory.

Cast(IAddressable, Type)

Возвращает типизированные ссылки на предоставленное зерно.

Cast<TGrainInterface>(IAddressable)

Возвращает типизированные ссылки на предоставленное зерно.

GetGrainId(IAddressable)

Возвращает идентификатор зерна, соответствующий предоставленному зерне.

GetGrainIdentity(IGrain)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

GetPrimaryKey(IGrain)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

GetPrimaryKey(IGrain, String)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

GetPrimaryKey(IAddressable)

Возвращает Guid представление первичного ключа зерна.

GetPrimaryKey(IAddressable, String)

Возвращает Guid представление первичного ключа зерна.

GetPrimaryKeyLong(IGrain)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

GetPrimaryKeyLong(IGrain, String)

Базовый класс для параметров, согласованных с журналами, с использованием стандартной терминологии для источников событий. Все операции защищены повторной отступом.

GetPrimaryKeyLong(IAddressable)

Возвращает long представление первичного ключа зерна.

GetPrimaryKeyLong(IAddressable, String)

Возвращает long представление первичного ключа зерна.

GetPrimaryKeyString(IAddressable)

Возвращает первичный ключ string зерна.

IsPrimaryKeyBasedOnLong(IAddressable)

Возвращает, является ли часть первичного ключа типом long.

GetReminder(Grain, String)

Возвращает ранее зарегистрированное напоминание.

GetReminder(IGrainBase, String)

Возвращает ранее зарегистрированное напоминание.

GetReminders(Grain)

Возвращает список всех напоминаний, зарегистрированных зерном.

GetReminders(IGrainBase)

Возвращает список всех напоминаний, зарегистрированных зерном.

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

Регистрирует постоянное, надежное напоминание для отправки регулярных уведомлений (напоминаний) на зерно. Зерно должно реализовать интерфейс Orleans.IRemindable, а напоминания об этом зерне будут отправлены в метод обратного вызова ReceiveReminder. Если текущее зерно деактивируется при срабатывании таймера, для получения этого напоминания будет создана новая активация этого зерна. Если существующее напоминание с тем же именем уже существует, это напоминание будет перезаписан с этим новым напоминанием. Напоминания всегда будут получены одной активацией этого зерна, даже если для этого зерна существует несколько активаций.

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

Регистрирует постоянное, надежное напоминание для отправки регулярных уведомлений (напоминаний) на зерно. Зерно должно реализовать интерфейс Orleans.IRemindable, а напоминания об этом зерне будут отправлены в метод обратного вызова ReceiveReminder. Если текущее зерно деактивируется при срабатывании таймера, для получения этого напоминания будет создана новая активация этого зерна. Если существующее напоминание с тем же именем уже существует, это напоминание будет перезаписан с этим новым напоминанием. Напоминания всегда будут получены одной активацией этого зерна, даже если для этого зерна существует несколько активаций.

UnregisterReminder(Grain, IGrainReminder)

Отменяет регистрацию ранее зарегистрированного напоминания.

UnregisterReminder(IGrainBase, IGrainReminder)

Отменяет регистрацию ранее зарегистрированного напоминания.

GetStreamProvider(Grain, String)

Возвращает поставщик потоков с указанным name.

GetStreamProvider(IGrainBase, String)

Возвращает поставщик потоков с указанным name.

GetLogger(Grain)

Возвращает объект средства ведения журнала, который код этого зерна может использовать для трассировки. Имя средства ведения журнала будет производным от имени класса зерна.

GetLogger(Grain, String)

Возвращает объект средства ведения журнала, который код этого зерна может использовать для трассировки.

GetGrainStorage(Grain, IServiceProvider)

Получение поставщика хранилища, связанного с типом зерна.

Применяется к