Closed. This question is opinion-based。它当前不接受答案。
想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
7年前关闭。
Improve this question
我在MVC4项目中使用System.Net.HttpClient(.Net 4.5)。我知道HttpClient的单个实例可用于Web应用程序中的所有Http请求。这是我对HttpClient单例的实现,该实现应每次都返回单个实例。
您看到与此有关的任何问题吗?
我知道我可以使用Ninject在单例范围内注入(inject)依赖项,但这是重点。
想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
7年前关闭。
Improve this question
我在MVC4项目中使用System.Net.HttpClient(.Net 4.5)。我知道HttpClient的单个实例可用于Web应用程序中的所有Http请求。这是我对HttpClient单例的实现,该实现应每次都返回单个实例。
public sealed class HttpClientInstance: HttpClient
{
// singleton instance
private static readonly HttpClientInstance instance = new HttpClientInstance();
static HttpClientInstance() { }
private HttpClientInstance() : base() {
Timeout = TimeSpan.FromMilliseconds(15000)));
}
/// <summary>
/// Returns the singleton instance of HttpClient
/// </summary>
public static HttpClient Instance
{
get
{
return instance;
}
}
}
您看到与此有关的任何问题吗?
我知道我可以使用Ninject在单例范围内注入(inject)依赖项,但这是重点。
最佳答案
发出第一个请求后,您无法更改一些属性。我认为超时可能是其中之一,因此请注意这一点。
您还需要注意,单个请求不要与DefaultRequestHeaders混为一谈,因为这可能会使其他请求感到困惑。
尝试共享HttpClient实例总是一个好主意。创建一个单例是一个极端的例子,但是小心一点就可以了。
关于c# - 我的HttpClient单例实现是否合适?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20074580/
10-17 00:54