使用引用项目中的 class 时,C# Swagger 响应架构为空

C# Swagger response schema is empty when using class from referenced project

我正在创建一个网站 API,响应类型来自另一个项目,已添加到 .csproj 文件中。然而,模型响应模式似乎是空的,即使我可以看到在单步执行代码时返回了正确的对象:

但是,如果我将要返回的 class 复制并粘贴到我自己的项目中(见下文),它会按预期运行:

    public class Info
    {
        public DateTime Timestamp { get; set; }

        public Dictionary<string, string> LatestInfoPerClient { get; set; }
    }

我用来创建端点的代码如下(删除了所有逻辑):

    [HttpGet]
    [Route("get_latest_info")]
    [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(Info))]
    public IActionResult GetLatestInfo()
    {
        ...

        return Ok(new Info(result));
    }

我很困惑为什么当 class 来自我自己的项目时它可以正常运行,而当它来自引用项目时却不能。

您需要让您的操作return成为键入的结果:

public ActionResult<Info> GetLatestInfo()
{
    ...
    return Ok(new Info(result));
}