【问题标题】:Using ValueTuple returns Item1,Item2 why?使用 ValueTuple 返回 Item1,Item2 为什么?
【发布时间】:2020-03-06 23:12:09
【问题描述】:

下一个 api 在 Postmen 中返回并返回给客户端 item1,item2 当我使用 ValueTuple 更改名称时(名称不是那么重要,但我无法返回 item1,item2)

public async Task<(List<CategoryFilterResponseDTO> categoryFilters, string MetaDataDescription)> GetCategoryFilterPage([FromBody]categoryFilterRequestDTO categoryFilterRequest)
{
    var logItem = new LogDTO();
    var result = await _service.GetCategoryFilterPage(categoryFilterRequest);

    try
    {
        OnStart(logItem, new object[] { categoryFilterRequest });
        var categoryFilters = result.categoryFilters;
        var MetaDataDescription = result.MetaDataDescription;


        return (categoryFilters: categoryFilters, MetaDataDescription: MetaDataDescription);

    }
}

方法:

public async Task<(List<CategoryFilterResponseDTO> categoryFilters, string MetaDataDescription)> GetCategoryFilterPage(categoryFilterRequestDTO categoryFilterRequestDTO)
{
    List<CategoryFilterResponseDTO> categoryFilter = new List<CategoryFilterResponseDTO>();
    List<FavoriteDTO> isFavorite = null;
    string MetaDataDescription = "";
    (List<FilterSortDTO<FlatSearchCategory>>, int) searchCategory = await _clubRepo.CategoryFilterPage(categoryFilterRequestDTO);//BranchesCount
    if (searchCategory.Item2 == 0)
    {
        MetaDataDescription = GetCategoryDetails(categoryFilterRequestDTO.CategoryFirstFatherID.Value).CategoryName;
        return (categoryFilters: categoryFilter, MetaDataDescription: MetaDataDescription);
    }

【问题讨论】:

  • 大概 Web API 不使用反射来计算返回类型的元素名称。这是哪个版本的 ASP.NET Core?它可能在以后的版本中得到了改进。
  • 刚刚尝试过,ASP.NET Core 3 甚至比 2 更糟糕——它返回一个空的 JSON 对象。
  • @JonSkeet 我猜这是因为System.Text.Json 现在不序列化字段。
  • @KirkLarkin:对,完全有可能。

标签: c# .net-core postman valuetuple


【解决方案1】:

您可以将退货更改为以下内容:

return Ok(new
{
    categoryFilters = categoryFilter,
    metaDataDescription = MetaDataDescription
});

您还需要将返回类型更改为 ActionResult 或类似名称。

【讨论】:

    【解决方案2】:

    因为这是ValueTuple&lt;,&gt; 上的字段名称。

    为值指定的名称仅适用于源代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2011-12-06
      • 2020-03-04
      相关资源
      最近更新 更多