在客户端委派服务器端验证

时间:2015-08-21 18:02:09

标签: .net class

这是我的思考过程。我有一个WCF服务,它有一些类,类有一些必填字段。在调用服务之后,我们将在服务实现方验证这些数据。

现在,如果强制字段为空,我不希望客户端发起呼叫。我想强制执行客户端发出的类来为我做这件事。

我的想法是否正确。

如果正确的话,我怎样才能在客户端给代表这项工作,我不喜欢在调用服务之前创建服务消费者方面调用的任何内容,如call validate方法。

欢迎任何想法。

1 个答案:

答案 0 :(得分:1)

如果您在类属性上使用DataAnnotations,那么在实际调用服务之前,您肯定可以调用手动验证。

e.g。

public class Recipe
{
    [Required]
    public string Name { get; set; } 
}

您可以使用System.ComponentModel.DataAnnotations中的ValidationContext类触发对象的验证。

var recipe = new Recipe();
var context = new ValidationContext(recipe, serviceProvider: null, items: null);
var results = new List<ValidationResult>();

var isValid = Validator.TryValidateObject(recipe, context, results);

if (!isValid)
{
    foreach (var validationResult in results)
    {
        Console.WriteLine(validationResult.ErrorMessage);
    }
}