ValidationContext
2024-10-11 01:55:09
.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; } } |
最新文章
- css3 transfrom变换
- 危险的“我以为”DDoS&;丑陋的现实
- 6.6	 Android 编译机制的变迁
- UnityShader之固定管线Fixed Function Shader【Shader资料3】
- easy dp
- AngularJs学习笔记--Guide教程系列文章索引
- 关于CSS的图像放大问题的解决,需要借助jQuery等直接用css3设置
- _int、NSInteger、NSUInteger、NSNumber的区别和联系
- AndroidStudio快捷键汇总
- Websocket协议数据帧传输和关闭连接
- Python建立socket并获取信息
- 你的第一个AngularJS应用--教程二:基架、建立和測试的工具
- 网络资源(5) - Android视频
- java保存获取Web内容的文件
- HTML5 <;canvas>; 基础学习
- 下拉菜单制作——利用CSS实现的一个实例
- PHP htmlspecialchars和htmlspecialchars_decode(函数)
- C++内存布局详解
- Django普通文件上传
- Java并发编程(五)锁的使用(下)