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