找回密码
 注册
搜索
热搜: java php web
查看: 557|回复: 1

自定义验证器

[复制链接]
发表于 2009-1-27 01:13:13 | 显示全部楼层 |阅读模式
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;

namespace CustomValidatorDemo
{
    [ConfigurationElementType(typeof(MutilValueValidatorData))]
    public class MutilValueValidator : Validator<string>
    {
        private IList<string> _MutilValues;

        public IList<string> MutilValues
        {
            get { return _MutilValues; }
            set { _MutilValues = value; }
        }

        private char _Seperator;

        public char Seperator
        {
            get { return _Seperator; }
            set { _Seperator = value; }
        }

        public MutilValueValidator(IList<string> mutilValues, char seperator)
            : this(mutilValues, seperator, null)
        { }

        public MutilValueValidator(IList<string> mutilValues, char seperator, string messageTemplate)
            : base(messageTemplate, null)
        {
            if (mutilValues != null)
            {
                _MutilValues = mutilValues;
                _Seperator = seperator;
            }
            else
            {
                throw new ArgumentNullException("mutilValues can not be null.");
            }
        }

        internal MutilValueValidator(MutilValueValidatorData configData)
            : this(new List<string>(configData.MutilValue.Split(configData.Seperator)), configData.Seperator, configData.MessageTemplate)
        { }

        protected override void DoValidate(string objectToValidate, object currentTarget, string key, ValidationResults validationResults)

        {
            if (objectToValidate != null)
            {
                string[] splitedList = objectToValidate.Split(Seperator);
                foreach (string s in splitedList)
                {
                    if (!MutilValues.Contains(s))
                    {
                        //驗證錯誤,記錄驗證結果
                        LogValidationResult(validationResults, GetMessage(objectToValidate, key), currentTarget, key);
                        return;
                    }
                }
            }
        }

        protected override string DefaultMessageTemplate
        {
            get { return "{0}: {1}, MutilValueValidator Failed."; }
        }
    }
}
MutilValueValidator.cs
发表于 2009-1-27 03:35:34 | 显示全部楼层
看不太懂啊 啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-11-22 20:19

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表