Hishop.Components.Validation/Validator.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace Hishop.Components.Validation
{
    using System;
    using System.Collections.Generic;
    using System.Globalization;

    public abstract class Validator
    {
        private string messageTemplate;
        private string tag;

        protected Validator(string messageTemplate, string tag)
        {
            this.messageTemplate = messageTemplate;
            this.tag = tag;
        }

        protected internal abstract void DoValidate(object objectToValidate, object currentTarget, string key, ValidationResults validationResults);
        protected virtual string GetMessage(object objectToValidate, string key)
        {
            return string.Format(CultureInfo.CurrentCulture, this.MessageTemplate, new object[] { objectToValidate, key, this.Tag });
        }

        protected void LogValidationResult(ValidationResults validationResults, string message, object target, string key)
        {
            validationResults.AddResult(new ValidationResult(message, target, key, this.Tag, this));
        }

        protected void LogValidationResult(ValidationResults validationResults, string message, object target, string key, IEnumerable<ValidationResult> nestedValidationResults)
        {
            validationResults.AddResult(new ValidationResult(message, target, key, this.Tag, this, nestedValidationResults));
        }

        public ValidationResults Validate(object target)
        {
            ValidationResults validationResults = new ValidationResults();
            this.DoValidate(target, target, null, validationResults);
            return validationResults;
        }

        public void Validate(object target, ValidationResults validationResults)
        {
            if (validationResults == null)
            {
                throw new ArgumentNullException("validationResults");
            }
            this.DoValidate(target, target, null, validationResults);
        }

        protected abstract string DefaultMessageTemplate { get; }

        public string MessageTemplate
        {
            get
            {
                if (this.messageTemplate == null)
                {
                    return this.DefaultMessageTemplate;
                }
                return this.messageTemplate;
后面还有 21 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。