在后台接口处理时,经常需要对请求的参数做验证。因此提取了共通方法,方便进行判断。
/// <summary> /// 数据验证工具类 /// </summary> public static class CheckUtil { /// <summary> /// 验证对象中的字段是否为空 /// </summary> /// <param name="obj">验证的对象</param> /// <param name="fields">需要验证的属性</param> /// <param name="errorMsg">错误信息</param> /// <returns></returns> public static bool CheckFieldIsNull(Object obj, string[] fields, out string errorMsg) { errorMsg = ""; if (fields != null && fields.Length > 0) { foreach (var item in fields) { if (!string.IsNullOrWhiteSpace(item)) { var value = GetPropertyValue(obj, item, out string msg); if (value == null) { errorMsg = msg ?? (item + "不能为空"); return false; } } } } return true; } /// <summary> /// 从对象中获取某个属性的值 /// </summary> /// <param name="obj">对象</param> /// <param name="field">属性</param> /// <returns></returns> public static Object GetPropertyValue(Object obj, string field, out string errorMsg) { errorMsg = null; if (obj == null) return null; Type t = obj.GetType(); IEnumerable<System.Reflection.PropertyInfo> property = from pi in t.GetProperties() where pi.Name.ToLower() == field.ToLower() select pi; var prop = property.FirstOrDefault(); if (prop == null) { errorMsg = "(后台修改)请求参数中不包含属性:" + field; return null; } return prop.GetValue(obj, null); }
目前只判断对象中的属性是否为null,需要根据数据类型做进一步判断的,可以自己写验证方法进行进一步判断。