コード例 #1
0
        /// <summary>
        /// 尝试根据组标识和值获取值描述(获取成功返回true;失败返回false)
        /// </summary>
        /// <param name="groupId">组标识</param>
        /// <param name="value">值</param>
        /// <param name="des">值描述</param>
        /// <returns>获取成功返回true;失败返回false</returns>
        public static bool TryGetDescriptionByValue(object groupId, object value, out string des)
        {
            des = null;
            ValueDescriptionGroup group = GetValueDescriptionGroupById(groupId);

            if (group == null)
            {
                return(false);
            }

            DisplayNameExAttribute desAtt;

            if (group.TryGetValue(value, out desAtt))
            {
                des = desAtt.Description;
                return(true);
            }

            var groupDescriptionAtt = group.GroupDescriptionAttribute;

            if (groupDescriptionAtt != null && groupDescriptionAtt.Extend != null)
            {
                des = groupDescriptionAtt.Extend.GetDescription(value, group);
                return(true);
            }

            return(false);
        }
コード例 #2
0
        /// <summary>
        /// 根据组标识和值获取值描述(获取成功返回值描述;失败抛出ArgumentException异常)
        /// </summary>
        /// <param name="groupId">组标识</param>
        /// <param name="value">值</param>
        /// <returns>值描述</returns>
        public static string GetDescriptionByValue(object groupId, object value)
        {
            ValueDescriptionGroup group = GetValueDescriptionGroupById(groupId);

            if (group == null)
            {
                throw new ArgumentException($"组标识\"{groupId}\"未注册");
            }

            DisplayNameExAttribute desAtt;

            if (group.TryGetValue(value, out desAtt))
            {
                return(desAtt.Description);
            }

            var groupDescriptionAtt = group.GroupDescriptionAttribute;

            if (groupDescriptionAtt != null && groupDescriptionAtt.Extend != null)
            {
                return(groupDescriptionAtt.Extend.GetDescription(value, group));
            }
            else
            {
                throw new ArgumentException($"组标识\"{groupId}\"值\"{value}\"对应的描述不存在");
            }
        }