public TransactionalState(ITransactionalStateConfiguration transactionalStateConfiguration, IGrainActivationContext context, ITransactionDataCopier <TState> copier, ITransactionAgent transactionAgent, IProviderRuntime runtime, ILoggerFactory loggerFactory) { this.config = transactionalStateConfiguration; this.context = context; this.copier = copier; this.transactionAgent = transactionAgent; this.runtime = runtime; this.logger = loggerFactory.CreateLogger($"{this.GetType().FullName}.{this.context.GrainIdentity}.{this.config.StateName}"); this.transactionCopy = new Dictionary <long, TState>(); this.storageExecutor = new AsyncSerialExecutor <bool>(); this.log = new SortedDictionary <long, LogRecord <TState> >(); }