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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
