Я использую System.Net.HttpClient (.Net 4.5) в своем проекте MVC4. Я знаю, что один экземпляр HttpClient может использоваться для всех запросов Http через веб-приложение. Вот моя реализация синглтера HttpClient, который должен возвращать единственный экземпляр каждый раз.Является ли моя реализация синтаксиса 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 для инъекции зависимости в однопользовательском пространстве, но это не относится к этой точке.
Рабочий код, вероятно, должен быть перемещен в [Обзор кода] (http://codereview.stackexchange.com) – paqogomez
В соответствии с этим http://msdn.microsoft.com/pl-pl/library/system.net.http .httpclient% 28v = vs.110%. Члены экземпляра 29.aspx не гарантируют безопасность потоков. Вы уверены, что не столкнетесь с проблемами параллелизма? –
@WiktorZychla - HttpClient действует как сеанс для всех HTTP-запросов. Кроме того, все методы HTTP-операций являются потокобезопасными, как указано в той же самой ссылке, которую вы предоставили. – dotnetster