【发布时间】:2020-04-27 01:51:17
【问题描述】:
我已经阅读了很多关于此的内容,但仍然感到困惑。下面是我如何使用 HttpClient 以便它可以被重用:
private static HttpClient client;
public ClientClass()
{
client = new HttpClient();
}
我不明白的是,即使它是静态的,我仍然会在每次控制器调用时创建一个新实例。只有当我在同一个方法中进行多次 HttpClient 调用时,它才会被重用,但除此之外,它总是会为每个 Web 请求创建一个新实例。
是否应该通过多个 Web 请求重用一个 HttpClient 实例,如果是这样,我该怎么做,因为我这样做的方式会在每次 api 调用上创建一个新实例?
另外,如果我这样做有什么不同:
private static HttpClient client = new HttpClient();
public ClientClass() {}
【问题讨论】:
-
每次创建新实例都违背了拥有静态变量的目的
-
创建一个可以访问的全局变量,而不是在方法中创建一个
-
@Nkosi 那么有没有正确方法的例子?我展示的方式是每篇文章都说如何去做。
-
您发现哪些文章使用了实例构造函数(而不是静态构造函数)?
标签: c# asp.net .net asp.net-mvc-4 asp.net-web-api