/// <summary> Default constructor. </summary> public MemoryGrainStorage(string name, MemoryGrainStorageOptions options, ILogger <MemoryGrainStorage> logger, IGrainFactory grainFactory) { this.name = name; this.logger = logger; //Init logger.LogInformation("Init: Name={Name} NumStorageGrains={NumStorageGrains}", name, options.NumStorageGrains); storageGrains = new Lazy <IMemoryStorageGrain> [options.NumStorageGrains]; for (int i = 0; i < storageGrains.Length; i++) { int idx = i; // Capture variable to avoid modified closure error storageGrains[idx] = new Lazy <IMemoryStorageGrain>(() => grainFactory.GetGrain <IMemoryStorageGrain>(idx)); } }
/// <summary> Default constructor. </summary> public MemoryGrainStorage(string name, MemoryGrainStorageOptions options, ILoggerFactory loggerFactory, IGrainFactory grainFactory) { this.options = options; this.name = name; this.logger = loggerFactory.CreateLogger($"{this.GetType().FullName}.{name}"); this.grainFactory = grainFactory; //Init logger.LogInformation("Init: Name={Name} NumStorageGrains={NumStorageGrains}", name, this.options.NumStorageGrains); storageGrains = new Lazy <IMemoryStorageGrain> [this.options.NumStorageGrains]; for (int i = 0; i < this.options.NumStorageGrains; i++) { int idx = i; // Capture variable to avoid modified closure error storageGrains[idx] = new Lazy <IMemoryStorageGrain>(() => this.grainFactory.GetGrain <IMemoryStorageGrain>(idx)); } }