zoukankan      html  css  js  c++  java
  • ValidationContext

    .NET 4 和Silverlight 中可以使用以下方法:

    public static void Validate(this Entity entity)
    {
        // prepare the result
        var validationResults = new List<ValidationResult>();
        // create a validation context
        var validationContext = new ValidationContext(entity, null, null);
        // validate
        Validator.TryValidateObject(entity, validationContext, validationResults);
        // reset the validation errors of the entity
        entity.ValidationErrors.Clear();
        foreach (var error in validationResults)
            entity.ValidationErrors.Add(error);
    }

    .NET 3.5中的方法:

    public static class EntityValidator
    {
        public static IEnumerable<ErrorField> GetErrors(object instance)
        {
            var t = instance.GetType();
            var typeDescriptor = new AssociatedMetadataTypeTypeDescriptionProvider(t).GetTypeDescriptor(t);
     
            return from prop in typeDescriptor.GetProperties().Cast<PropertyDescriptor>()
                     from attribute in prop.Attributes.OfType<ValidationAttribute>()
                     where !attribute.IsValid(prop.GetValue(instance))
                     select new ErrorField(prop.Name, attribute.FormatErrorMessage(string.Empty));
        }  
    }
     
    [Serializable]
    public class ErrorField
    {
        public string ID { get; set; }
         
        public string Msg { get; set; }
     
        public ErrorField(string id, string msg)
        {
            this.ID = id;
            this.Msg = msg;
        }
     
     
    }
  • 相关阅读:
    Asp.net core 项目的发布和运行环境部署完整介绍(Window+IIS7)
    让IIS支持PUT和Delete请求
    js实现图片打点
    Ogre空间变换,setPosition(),setDerivedPosition()和translate()的正确使用。
    obs 工作室模式
    obs局域网串流插件之“OBSNDI”
    obs 媒体源获取之“VLC视频源”
    谈谈php中的mvc
    PHP 开发之MVC架构
    一个简单的php MVC实例
  • 原文地址:https://www.cnblogs.com/naliang/p/4611649.html
Copyright © 2011-2022 走看看