protected async Task <TStorageAdapter> GetAdapterAsync <TStorageAdapter>() where TStorageAdapter : class, IStorageAdapter { if (_adapter != null) { return((TStorageAdapter)_adapter); } using (await _asyncLock.LockAsync()) { if (_adapter != null) { return((TStorageAdapter)_adapter); } _adapter = _container.Resolve <TStorageAdapter>(); _adapter.Install = _install; await _adapter.InitializeAsync().ConfigureAwait(false); } return((TStorageAdapter)_adapter); }