在非Asp上验证带注释的ViewModel.Net MVC和Web API



我知道这个问题有点奇怪,但我必须做到。我在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属性的无效消息。

最新更新