using JetBrains.Annotations; using Volo.Abp.MultiTenancy; using Volo.Abp.Text.Formatting; namespace NPin.Framework.SettingManagement.Domain.Caching; /// /// 设置缓存项 /// 忽略多租户 /// [Serializable] [IgnoreMultiTenancy] public class SettingCacheItem { /// /// 缓存Key格式化参数 /// pn: providerName /// pk: providerKey /// n: name /// private const string CacheKeyFormat = "pn:{0},pk:{1},n:{2}"; /// /// 值 /// public string? Value { get; set; } public SettingCacheItem() { } public SettingCacheItem(string? value) { Value = value; } public static string CalculateCacheKey(string name, string providerName, string providerKey) { return string.Format(CacheKeyFormat, providerName, providerKey, name); } public static string? GetSettingNameFormCacheKeyOrNull(string cacheKey) { var result = FormattedStringValueExtracter.Extract(cacheKey, CacheKeyFormat, true); return result.IsMatch ? result.Matches.Last().Value : null; } }