我知道这个问题有点奇怪,但我必须做到。我在WCF Webservice中工作,我的方法接收带注释的对象。我想用这些注解来验证它们。我想检查对象是否有效并获取它的错误信息。
在我想要验证的对象下面。我一直在谷歌搜索,但我找到的所有答案都是asp.net mvc或web api。
public class EntidadeSenior
{
[Required(ErrorMessage="A propriedade IDSenior é de preenchimento obrigatório")]
[StringLength(20, ErrorMessage="Para a propriedade IDSenior são permitidos até 20 caracteres")]
public string IDSenior { get; set; }
[Required(ErrorMessage="O campo nome é de preenchimento obrigatório")]
[StringLength(100, ErrorMessage = "Para a propriedade Nome são permitidos até 100 caracteres")]
public string Nome { get; set; }
[Required(ErrorMessage = "A propriedade Status é de preenchimento obrigatório")]
[StringLength(1, ErrorMessage = "Para a propriedade IDSenior é permitido apenas 1 caractere")]
public string Status { get; set; }
}
提前感谢您的帮助
向System.ComponentModel.DataAnnotations程序集添加引用,并使用其中的Validator类,如下所示:
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public class DataAnnotationsValidator
{
public bool TryValidate(object @object, out ICollection<ValidationResult> results)
{
var context = new ValidationContext(@object, serviceProvider: null, items: null);
results = new List<ValidationResult>();
return Validator.TryValidateObject(
@object,
context,
results,
validateAllProperties: true
);
}
}
您可以使用Validator。TryValidateObject:
EntidadeSenior yourObject;
var context = new ValidationContext(youObject, serviceProvider: null, items: null);
var results = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(youObject, context, results);
因此您可以检查有效的,并且结果返回基于您的DataAnnotations属性的无效消息。