zoukankan      html  css  js  c++  java
  • 使用Microsoft.Practices.EnterpriseLibrary.Validation.dll验证类成员

    public class MyClass
    
    {
    
        [StringLengthValidator(1, 32, MessageTemplate = "MyValue is too long", Ruleset = "MyRules")]
        [MyValidator(MessageTemplate="MyValue is invalid", Ruleset = "MyRules")]
    
        public string MyValue {get;set;}
    
        public ValidationResults Validate()
        {
                Validator<MyClass> myValidator = ValidationFactory.CreateValidator<MyClass>("MyRules");
                ValidationResults custResults = myValidator.Validate(this);
                return custResults;
        }
    }
        [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
        public class MyValidatorAttribute : ValidatorAttribute
        {
            protected override Validator DoCreateValidator(Type targetType)
            {
                return new MyValidator(Tag);
            }
        }
        
        public class MyValidator:Validator<string>
        {
            public MyValidator(string tag) : base(string.Empty, tag) { }
            
            private bool IsValid(string text)
            {
                return false;
            }
            
            protected override void DoValidate(string objectToValidate, object currentTarget, string key, ValidationResults validationResults)
            {
                if (string.IsNullOrEmpty(objectToValidate))
                    return;
                if (IsValid(objectToValidate))//cc is found
                {
                    LogValidationResult(validationResults, GetMessage(objectToValidate,key), currentTarget, key);
                }
            }
    
            protected override string DefaultMessageTemplate
            {
                get { return "Validation failed"; }
            }
        }
  • 相关阅读:
    linux下编译安装mysql
    Linux系统信息查看命令(转载)
    python使用memcached
    ./configure 命令使用和参数解析
    linux平台下使用 nginx + spawn-cgi 部署webpy程序
    冒泡排序
    在gitub上添加ssh key
    给p标签做单行省略 设置宽度的问题
    移动端的无缝滚动
    canvas-图片翻转
  • 原文地址:https://www.cnblogs.com/sungang3225/p/7566037.html
Copyright © 2011-2022 走看看