C#驗證對象中的屬性是否為空的共通方法


在后台接口處理時,經常需要對請求的參數做驗證。因此提取了共通方法,方便進行判斷。

   /// <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,需要根據數據類型做進一步判斷的,可以自己寫驗證方法進行進一步判斷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM