Closed. This question is opinion-based。它当前不接受答案。












想要改善这个问题吗?更新问题,以便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