public void Add <T>(string key, T value) where T : class { MoMoBotAssert.KeyNotNullOrEmpty(key); MoMoBotAssert.ValueNotNull(value); base.Add(key, value); }
public Task <T> ReadAsync <T>(string key, Func <T> def) { MoMoBotAssert.KeyNotNullOrEmpty(key); lock (_synclock) { if (_memory.TryGetValue(key, out var state)) { if (state != null) { return(Task.FromResult(state.ToObject <T>(StateJsonSerializer))); } } if (def != null) { var result = def.Invoke(); if (result != null) { WriteAsync(new Dictionary <string, object> { { key, result } }); return(Task.FromResult(result)); } } return(default);
public T Get <T>(string key) where T : class { MoMoBotAssert.KeyNotNullOrEmpty(key); if (TryGetValue(key, out var service)) { if (service is T result) { return(result); } } return(null); }