如何从 Class 访问 GET 方法的结果?

How to Access the Result of GET Method From a Class?

我有一个获取方法。此方法调用来自不同项目的端点并获取客户信息。我想在另一个 class 中使用此客户的信息。但是不知道怎么访问。

将我用方法得到的信息写入数据库,然后从数据库中读取是一种选择,但是客户数量可能很高,并且客户信息可能已经更新。这就是为什么我必须在需要的时候打电话。

我的 GetCustomerInformation(customerIdList) 方法 returns 即:return Ok(customerInfoList);

当我想在另一个 class 中获得 customerInfoList 时,我尝试了类似的方法:

var customerList = _customerInfoController.GetCustomerInformation(customerIdList).Result;

它 returns 一个 ActionResult,我怎样才能得到 customerInfoList 作为 List

假设

var customerList =_customerInfoController.GetCustomerInformation(customerIdList)

是外部 Web API 调用.. customerList 的类型将是 HttpResponseMessage。所以我们需要将该数据转换为字符串,然后转换为特定对象,然后您就可以访问该列表。

var response = customerList .Content.ReadAsStringAsync().Result;
var data= JsonConvert.DeserializeObject<List<YourSpecificObject>>(response);

您可能需要创建一个 class 并将客户列表的所有指定属性设置为 YourSpecificObject..

首先添加项目引用,其中 API 位于您要使用它的项目中(如下图所示)

那么你的新class(在其他项目中)可以这样实现。

@using APIProject;
public IList<YourSpecificObject> customerList { get; set; }
public async Task<IActionResult> OnPost(customerIdList)
{
  customerList =_customerInfoController.GetCustomerInformation(customerIdList)
}

希望这对您有所帮助。谢谢