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"; }
            }
        }
  • 相关阅读:
    PostgreSQL远端访问
    PostgreSQL在线安装
    /usr/lib64改名字风波
    Provisional headers are shown(一)
    解析URL中的携带的参数到Map
    Mysql5.7的初始密码更改
    REST开放接口生成文档工具之apidoc
    自己来实现一套IOC注解框架
    RecyclerView打造通用的万能Adapter
    RecyclerView分隔线定制
  • 原文地址:https://www.cnblogs.com/sungang3225/p/7566037.html
Copyright © 2011-2022 走看看