自定义ServiceStack验证响应

时间:2013-12-30 08:01:27

标签: c# servicestack fluentvalidation

我正在使用ServiceStack FluentValidation来验证DTO。

我知道我可以使用

自定义错误消息
public class HeaderItemValidator : AbstractValidator<HeaderItem>
{
    public HeaderItemValidator()
    {
        RuleFor(h => h.MCode).GreaterThan(0).WithMessage("Gotcha");
        ...

关键是我想将验证的内容放在一个特殊对象中,该对象部分包含一些请求DTO数据和我希望客户端接收的固定错误。

我能这样做吗?

1 个答案:

答案 0 :(得分:4)

您可以通过创建自己的验证过滤器来完成此操作。

在AppHost插件配置中:

public override void Configure(Funq.Container container)
{
    ...
    // Add the Error Response Filter
    Plugins.Add(new ValidationFeature { ErrorResponseFilter = ValidationErrorFilter });
    ...

添加到您AppHost:

// Return your own validation result format here
public static object ValidationErrorFilter(ValidationResult validationResult, object errorDto)
{
    // Loop through the validationResult create your own custom error response object.
    // return your response object 
}

希望这有帮助。