c# - 自定义 ServiceStack 验证响应

标签 c# servicestack fluentvalidation

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

我知道我可以使用

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

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

我可以这样做吗?

最佳答案

您可以通过创建自己的验证过滤器来做到这一点。

在 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 
}

希望这有帮助。

关于c# - 自定义 ServiceStack 验证响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20835659/

相关文章:

iis - 从 IIS 上的服务堆栈提供 swf 文件时出现 403 错误

asp.net-mvc - FluentValidation 将参数传递给 WithMessage

c# - 使用 FluentValidation 验证集合,返回一个属性失败的规则错误

c# - ServiceStack.RequestFilterAsyncAttribute 错误 : System. ArgumentNullException : Value cannot be null. 参数名称:方​​法

c# - 使用属性上的总和验证集合

C# System.InvalidOperationException : The current TransactionScope is already complete

c# - 有没有办法检查 memcached 是否已重新启动?

C# 将字符串解析为 int32 - 值太大

c# - CheckInGatedChanges 构建工作流中的事件位置

C# ServiceStack JsonSerializer 反序列化