ServiceStack中的Fluent Validation没有错误消息 - c#

我刚刚开始熟悉ServiceStack,并开始使用FluentValidation。我已按照介绍进行操作,并创建了一个小型Hello App。

我的问题是,当我尝试验证请求DTO时,不会返回任何错误消息来描述其验证失败的方式,只有空白的Json对象{}

我自己,我认为验证是自动连接到DTO的,因此我不需要编写任何额外的代码。

答案可能很公然,但我看不到。任何帮助将不胜感激。我的代码如下:

namespace SampleHello2
{
    [Route("/hello")]
    [Route("/hello/{Name}")]
    public class Hello
    {
        public string Name { get; set; }
    }

    public class HelloResponse
    {
        public string Result { get; set; }
    }


    public class HelloService : Service
    {
        public object Any(Hello request)
        {
            return new HelloResponse { Result = "Hello, " + request.Name };
        }
    }

    public class HelloValidator : AbstractValidator<Hello>
    {
        public HelloValidator()
        {
            //Validation rules for all requests
            RuleFor(r => r.Name).NotNull().NotEmpty().Equal("Ian").WithErrorCode("ShouldNotBeEmpty");
            RuleFor(r => r.Name.Length).GreaterThan(2);
        }
    }

    public class Global : System.Web.HttpApplication
    {
        public class HelloAppHost : AppHostBase
        {
            //Tell Service Stack the name of your application and where to find your web services
            public HelloAppHost() : base("Hello Web Services", typeof(HelloService).Assembly) { }

            public override void Configure(Funq.Container container)
            {
                //Enable the validation feature
                Plugins.Add(new ValidationFeature());
                container.RegisterValidators(typeof(HelloValidator).Assembly);
                //register any dependencies your services use, e.g:
                //  container.Register<ICacheClient>(new MemoryCacheClient());
            }
        }

        //Initialize your application singleton
        protected void Application_Start(object sender, EventArgs e)
        {
            new HelloAppHost().Init();
        }
    }
}

附言真的很喜欢使用ServiceStack,这真的是一个很棒的项目,谢谢。

编辑

因此,例如:

调用:http://localhost:60063/hello/Ian?format=json返回{"Result":"Hello, Ian"}
而调用:http://localhost:60063/hello/I?format=json返回{}

第二个调用返回{},我期望自动生成错误消息。

参考方案

我找到了答案。这是我的一个疏忽:

这在文档中,但我忽略了它:

处理了下面描述的所有错误处理和验证选项
以相同的方式-序列化为您的ResponseStatus属性
响应DTO使您的客户应用程序能够
通常以相同的方式处理所有Web服务错误。

因此,我的代码中缺少的就是将以下行添加到HelloResponse类中。

公共ResponseStatus ResponseStatus {get;组; }

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…

从数据表C#创建复杂的JSON - javascript

我的数据集中有3个数据表。表A与B和C有一对多的关系。我想像下面那样在C#中使用Linq创建Json。有人可以帮帮我吗?我要在此先感谢所有将指导我或为我的问题提供投入的人。{ "A": [ { "id": "0001", "type": "donut", &#…