/// <summary>
        /// 定义对象属性为缓存区域
        /// </summary>
        /// <param name="dependProperty"></param>
        public void CacheRegion(string regionName, Func <TEntity, object> regionValueFunc)
        {
            regionName = regionName ?? DefaultRegionName;

            if (metadata.CacheRegionDefines.ContainsKey(regionName))
            {
                throw new ArgumentException("已经定义了命名为 {0} 的缓存区域。", regionName);
            }

            metadata.CacheRegionDefines.Add(regionName, ClassCacheRegionDefineMetadata.Create <TEntity, TEntity>(regionName, regionValueFunc));
        }
Beispiel #2
0
        public static ClassCacheRegionDefineMetadata Create <TRegionEntity, TValueEntity>(string regionName, Func <TValueEntity, object> regionValueFunc)
        {
            if (String.IsNullOrEmpty(regionName))
            {
                throw new ArgumentNullException("regionName");
            }

            if (regionName != CacheKeyUtil.DefaultRegionName && regionValueFunc == null)
            {
                throw new ArgumentNullException("regionValueFunc");
            }

            var define = new ClassCacheRegionDefineMetadata()
            {
                EntityType      = typeof(TRegionEntity),
                RegionName      = regionName,
                RegionValueFunc = (o) => regionValueFunc((TValueEntity)o)
            };

            return(define);
        }