0

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

我正在尝试简单的 web 服务,但是当我打开元数据 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;
    }
}
4

1 回答 1

3

有一个已知问题可以解释您的空引用异常。但是,与您的其他帖子不同,您不想要IReturnVoid,所以这里的答案不是等待 ServiceStack 被修复,而是改进您的 DTO 声明:

您的实现正在为您的请求UsersService返回一个List<User>对象。User您可以像这样在 ServiceStack 中记录它:

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

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

  • 类型化的C# 客户端将更易于使用,因为客户端可以知道您的响应消息的类型
  • 如果您使用Swagger UI,它将了解并自动记录响应类型
于 2013-08-13T17:54:15.397 回答