当前位置: 首页 > 编程语言 > C#

CustomValidationAttribute指定的方法未调用分享

时间:2023-04-10 20:29:25 C#

ThemethodspecifiedbyCustomValidationAttributewasnotcalled验证方法未调用。publicclassFoo{[Required]publicstringSomethingRequired{get;设置}[CustomValidation(typeof(Foo),"ValidateBar")]publicint?酒吧{得到;放;}publicstringFark{get;放;}publicstaticValidationResultValidateBar(int?v,ValidationContextcontext){varfoo=context.ObjectInstanceasFoo;if(!v.HasValue&&String.IsNullOrWhiteSpace(foo.Fark)){returnnewValidationResult("Bar或Fark中必须包含某些内容。");}返回ValidationResult.Success;但是当我尝试验证它时:varfoo=newFoo{SomethingRequired="okay"};varvalidationContext=newValidationContext(foo,null,null);varvalidationResults=newList();boolisvalid=Validator.TryValidateObject(foo,validationContext,validationResults);断言.IsFalse(有效);//失败!!!它在不应该的时候有效!它甚至从未进入自定义验证方法。是什么赋予了?尝试将重载与指定是否应验证所有属性的布尔一起使用。为最后一个参数传递true。publicstaticboolTryValidateObject(Objectinstance,ValidationContextvalidationContext,ICollectionvalidationResults,boolvalidateAllProperties)如果传递false或省略validateAllProperties,则仅检查RequiredAttribute。这是MSDN文档。以上就是C#学习教程:CustomValidationAttribute指定的方法还没有被调用,分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: