/// <summary>
        /// 从类型所有的装饰特性中,获取某类型的所有匹配特性
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="typeDecoratorInfo"></param>
        /// <param name="decoratorAttrType"></param>
        /// <returns></returns>
        public static List <T> GetDecorateAttrs <T>(this TypeDecoratorInfo typeDecoratorInfo)
            where T : BaseDecorateAttribute
        {
            var attrs = typeDecoratorInfo.TypeDecoratorAttrs.Where(a => a.GetType() == typeof(T));

            return(attrs == null ? null : attrs.Cast <T>().ToList());
        }
        /// <summary>
        /// 从类型所有的装饰特性中,获取某类型的第一个匹配特性
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="typeDecoratorInfo"></param>
        /// <param name="decoratorAttrType"></param>
        /// <returns></returns>
        public static T GetDecorateAttr <T>(this TypeDecoratorInfo typeDecoratorInfo)
            where T : BaseDecorateAttribute
        {
            var attr = typeDecoratorInfo.TypeDecoratorAttrs.SingleOrDefault(a => a.GetType() == typeof(T));

            return(attr == null ? null : (T)attr);
        }