gpt4 book ai didi

c# - 如何将 IHttpActionResult(内部带有 JSON)转换为我可以使用 LINQ 处理的对象

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:03 25 4
gpt4 key购买 nike

这可能是一个菜鸟问题或架构上的误解,但我还是问了,因为我没有想法和搜索词:目标是实现一个 Controller CountriesController()这应该连接两个端点的(JSONish)结果。

假设我有两个端点 api/allowedCountriesToSellapi/allowedCountriesToBuy实现为 CountriesSellController()CountriesBuyController()分别。它们都以 JSON 格式返回数据,我想将其合并并作为新端点提供。我知道这种架构并不理想,但我不允许在架构上有所不同。此外,我实际上必须将两个不同的文件发布到这些端点——两个现有的 Controller 都包含类似

的内容
[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase file, string selectBox)
{ // ...

我的新端点编译了所有这两个必需的参数,我们称它们为 myFileX , 和 mySelectBox .到目前为止,这是我所拥有的:

var myOtherContoller1 = new CountriesSellController();
var list1 = myOtherContoller1.FileUpload(myFile1,mySelectBox);

var myOtherContoller2 = new CountriesSellController();
var list2 = myOtherContoller1.FileUpload(myFile2,mySelectBox);

my result = list1.asEnumerable().Concat(list2.asEnumerable()); // Pseudocode. Here I am lost.

return Ok(result);

问题是list1list2类型为 IHttpActionResult而且我不确定如何提取其中的数据。理想情况下,result类型为 IEnumerable<UploadStatusDto>我将相应的数据传输对象定义为

namespace API.Models
{
public class UploadStatusDto
{
public int UploadId { get; set; } // contained in the response of both controllers
public string FileName { get; set; } // myFileX - parameter for calling the 2 existing controllers
public int UploadStatus { get; set; } // coming back within listX
public int Type { get; set; } // whether it is a buy or a sell, i.e. which controller I called
}

任何指导表示赞赏。

最佳答案

你需要做一些事情来解决这个问题。

var response = await myOtherContoller1.FileUpload(myFile2,mySelectBox).ExecuteAsync();

这将返回HttpResponseMessage,您可以从中获取内容

您可以获得这样的内容:Getting content/message from HttpResponseMessage .

不过,我的建议是将其他 Controller 的逻辑提取到一个服务类中,并在这个和其他两个中调用现在位于原始 Controller 中的逻辑。

关于c# - 如何将 IHttpActionResult(内部带有 JSON)转换为我可以使用 LINQ 处理的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59198088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com