/// <summary>
        ///     刷新缓存有效期。
        /// </summary>
        /// <param name="partitionId">缓存分区Id,不同Id对应不同区。</param>
        /// <param name="key">缓存键。</param>
        /// <param name="options">缓存有效期配置</param>
        public async Task RefreshAsync(string partitionId, string key, KolibreCacheOptions options)
        {
            if (key.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(key));
            }

            if (partitionId.IsNullOrEmpty())
            {
                partitionId = s_defaultPartitionId;
            }

            ISmartCacheActor actor = ActorProxy.Create <ISmartCacheActor>(new ActorId(partitionId), s_serviceUri);
            await actor.RefreshAsync(key, options);
        }
        /// <summary>
        ///     查询缓存。
        /// </summary>
        /// <param name="partitionId">缓存分区Id,不同Id对应不同区。</param>
        /// <param name="key">缓存键。</param>
        public async Task <Student> GetSmartCacheAsync(string partitionId, string key)
        {
            if (key.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(key));
            }

            if (partitionId.IsNullOrEmpty())
            {
                partitionId = s_defaultPartitionId;
            }

            ISmartCacheActor actor = ActorProxy.Create <ISmartCacheActor>(new ActorId(partitionId), s_serviceUri);

            return(await actor.GetSmartCacheAsync(key));
        }
        /// <summary>
        ///     设置列表实例缓存。
        /// </summary>
        /// <param name="partitionId">缓存分区Id,不同Id对应不同区。</param>
        /// <param name="key">缓存键。</param>
        /// <param name="values">缓存值。</param>
        /// <param name="options">缓存有效期配置</param>
        public async Task SetSmartCacheAsync(string partitionId, string key, List <Student> values, KolibreCacheOptions options)
        {
            if (key.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(key));
            }

            if (values == null || values.Count == 0)
            {
                throw new ArgumentNullException(nameof(values));
            }

            if (partitionId.IsNullOrEmpty())
            {
                partitionId = s_defaultPartitionId;
            }

            ISmartCacheActor actor = ActorProxy.Create <ISmartCacheActor>(new ActorId(partitionId), s_serviceUri);
            await actor.SetSmartCachesAsync(key, values, options);
        }
        /// <summary>
        ///     移除缓存键中指定的缓存值。
        /// </summary>
        /// <param name="partitionId">缓存分区Id,不同Id对应不同区。</param>
        /// <param name="key">缓存键。</param>
        /// <param name="value">被移除的缓存值。</param>
        public async Task RemoveSmartCacheAsync(string partitionId, string key, Student value)
        {
            if (key.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(key));
            }

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            if (partitionId.IsNullOrEmpty())
            {
                partitionId = s_defaultPartitionId;
            }

            ISmartCacheActor actor = ActorProxy.Create <ISmartCacheActor>(new ActorId(partitionId), s_serviceUri);
            await actor.RemoveSmartCacheValueAsync(key, value);
        }
        /// <summary>
        ///     移除缓存键中指定的缓存值。
        /// </summary>
        /// <param name="partitionId">缓存分区Id,不同Id对应不同区。</param>
        /// <param name="key">缓存键。</param>
        /// <param name="values">被移除的缓存值。</param>
        public async Task RemoveSmartCachesAsync(string partitionId, string key, List <Teacher> values)
        {
            if (key.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(key));
            }

            if (values == null || values.Count == 0)
            {
                throw new ArgumentNullException(nameof(values));
            }

            if (partitionId.IsNullOrEmpty())
            {
                partitionId = s_defaultPartitionId;
            }

            ISmartCacheActor actor = ActorProxy.Create <ISmartCacheActor>(new ActorId(partitionId), s_serviceUri);
            await actor.RemoveTeacherSmartCacheValuesAsync(key, values);
        }