ServiceStack版本3.9.56在元数据json页面上给出NullReferenceException错误

时间:2013-08-13 17:30:55

标签: servicestack nullreferenceexception

我刚刚用NuGet下载了ServiceStack。版本3.9.56。

我正在尝试简单的webservice,但是当我打开元数据json页面时,它会出现NullReferenceException错误。

我的服务在这里:

[Route("/users")]
[Alias("Users")]
public class User
{
    [Alias("UserID")]
    public int id { get; set; }

    public string UserName { get; set; }
    public string Email { get; set; }
}

public class UsersService:Service
{
    public object Get(User request)
    {
        var result = new List<User>();
        result = Db.Select<User>();
        return result;
    }
}

1 个答案:

答案 0 :(得分:3)

known issue可以解释您的空引用异常。但是,您不希望IReturnVoid,与其他帖子不同,所以这里的答案不是等待ServiceStack修复,而是要改进您的DTO声明:

您的UsersService实施正在为List<User>请求返回User个对象。您可以在ServiceStack中记录此内容,如下所示:

public class User : IReturn<List<User>>
{
    ...
}

这可能会解决您在元数据页面上看到的问题,因为ServiceStack现在知道对用户消息的期望响应类型。使用IReturn装饰您的请求DTO还有其他好处:

  • typed C# client将更容易使用,因为客户端可以知道您的回复消息的类型
  • Swagger UI,如果您使用它,将会知道并自动记录响应类型