BobbyCore数据库切换/ValidateAttribute.cs

(开头部分) 12KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace TbColAttribute
{
    public class ValidateAttribute
    {
        /// <summary>
        /// 验证实体对象的所有带验证特性的元素  并返回验证结果  如果返回结果为String.Empty 则说明元素符合验证要求
        /// </summary>
        /// <param name="entityObject">实体对象</param>
        /// <returns></returns>
        public static string GetValidateResult(object entityObject)
        {
            if (entityObject == null)
                throw new ArgumentNullException("entityObject");
            Type type = entityObject.GetType();
            PropertyInfo[] properties = type.GetProperties();
            string validateResult = string.Empty;
            foreach (PropertyInfo property in properties)
            {
                //获取验证特性
                object[] validateContent = property.GetCustomAttributes(typeof(EntityAttribute), true);
                if (validateContent != null)
                {
                    //获取属性的值
                    object value = property.GetValue(entityObject, null);
                    foreach (EntityAttribute validateAttribute in validateContent)
                    {
                        switch (validateAttribute.ValidateType)
                        {
                            //验证元素是否为空字串
                            case ValidateType.IsEmpty:
                                if (null == value || value.ToString().Length < 1)
                                    validateResult = string.Format("{0}不允许为空!", string.IsNullOrEmpty(validateAttribute.ErrorMes) ? property.Name : validateAttribute.ErrorMes);
                                break;
                            //验证元素的长度是否小于指定最小长度
                            case ValidateType.MinLength:
                                if (null == value || value.ToString().Length < 1) break;
                                if (value.ToString().Length < validateAttribute.MinLength)
                                    validateResult = string.Format("{0}的长度不能小于{1}!", string.IsNullOrEmpty(validateAttribute.ErrorMes) ? property.Name : validateAttribute.ErrorMes, validateAttribute.MinLength);
                                break;
                            //验证元素的长度是否大于指定最大长度
                            case ValidateType.MaxLength:
                                if (null == value || value.ToString().Length < 1) break;
                                if (value.ToString().Length > validateAttribute.MaxLength)
                                    validateResult = string.Format("{0}的长度不能大于{1}!", string.IsNullOrEmpty(validateAttribute.ErrorMes) ? property.Name : validateAttribute.ErrorMes, validateAttribute.MaxLength);
                                break;
                            //验证元素的长度是否符合指定的最大长度和最小长度的范围
                            case ValidateType.MinLength | ValidateType.MaxLength:
                                if (null == value || value.ToString().Length < 1) break;
                                if (value.ToString().Length > validateAttribute.MaxLength || value.ToString().Length < validateAttribute.MinLength)
                                    validateResult = string.Format("{0}不符合指定的最小长度和最大长度的范围,应该在{1}与{2}之间!", string.IsNullOrEmpty(validateAttribute.ErrorMes) ? property.Name : validateAttribute.ErrorMes, validateAttribute.MinLength, validateAttribute.MaxLength);
                                break;
                            //验证元素的值是否为值类型
                            case ValidateType.IsNumber:
                                if (null == value || value.ToString().Length < 1) break;
                                if (!System.Text.RegularExpressions.Regex.IsMatch(value.ToString(), @"^\d+$"))
后面还有 125 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。