using System.Threading.Tasks; using Xamarin.Essentials; namespace System.Security { /// /// https://docs.microsoft.com/zh-cn/xamarin/essentials/secure-storage /// internal sealed class ClientStorage : IStorage { bool IStorage.IsNativeSupportedBytes => false; Task IStorage.GetAsync(string key) { return SecureStorage.GetAsync(key); } Task IStorage.SetAsync(string key, string? value) { if (string.IsNullOrEmpty(value)) { SecureStorage.Remove(key); return Task.CompletedTask; } return SecureStorage.SetAsync(key, value); } Task IStorage.RemoveAsync(string key) { var result = SecureStorage.Remove(key); return Task.FromResult(result); } } }