dot*_*ter 9 c# singleton .net-4.5 dotnet-httpclient
我在我的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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
你觉得这有什么问题吗?
我知道我可能会使用Ninject在单例范围内注入依赖项,但这不是重点.
有一些属性在发出第一个请求后就无法更改。我认为超时可能是其中之一,所以要注意这一点。
您还需要注意,单个请求不要与 DefaultRequestHeaders 混淆,因为这可能会混淆其他请求。
尝试共享 HttpClient 实例始终是一个好主意。创建单例是一种极端的情况,但只要小心,它应该可以很好地为您工作。
| 归档时间: |
|
| 查看次数: |
5280 次 |
| 最近记录: |