Ejemplo n.º 1
0
        /// <summary>
        /// 验证模型
        /// 包括Attribute规则和Fluent规则
        /// </summary>
        /// <typeparam name="T">模型类型</typeparam>
        /// <param name="model">模型实例</param>
        /// <returns></returns>
        public static ValidResult ValidFor <T>(T model)
        {
            if (model == null)
            {
                return(ValidResult.False("模型不能为null .."));
            }

            var context = new ValidContext(model, RuleProperty.GetGetProperties(typeof(T)));

            foreach (var property in context.Properties)
            {
                var failureRule = property.GetFailureRule(context);
                if (failureRule != null)
                {
                    var message = failureRule.FormatErrorMessage(null);
                    return(ValidResult.False(message, property.Info));
                }
            }
            return(ValidResult.True());
        }