在后台接口處理時,經常需要對請求的參數做驗證。因此提取了共通方法,方便進行判斷。
/// <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,需要根據數據類型做進一步判斷的,可以自己寫驗證方法進行進一步判斷。