/// <summary>
 /// <inheritdoc cref="BoundedMemoryCacheEntry{TKey, TValue}"/>
 /// </summary>
 /// <param name="key">缓存Key</param>
 /// <param name="value">缓存值</param>
 /// <param name="entryRemovingCallback">移除缓存项时的回调</param>
 public BoundedMemoryCacheEntry(TKey key, TValue value, CacheEntryRemovingCallback <TKey, TValue>?entryRemovingCallback)
 {
     Key   = key;
     Value = value ?? throw new ArgumentNullException(nameof(value));
     EntryRemovingCallback = entryRemovingCallback;
 }
 /// <summary>
 /// 添加缓存项
 /// </summary>
 /// <typeparam name="TKey"></typeparam>
 /// <typeparam name="TValue"></typeparam>
 /// <param name="memoryCache"></param>
 /// <param name="key"></param>
 /// <param name="value"></param>
 /// <param name="entryRemovingCallback"></param>
 public static void Add <TKey, TValue>(this IBoundedMemoryCache <TKey, TValue> memoryCache, TKey key, TValue value, CacheEntryRemovingCallback <TKey, TValue> entryRemovingCallback) where TValue : class
 {
     memoryCache.Add(new(key, value, entryRemovingCallback));
 }