从班级中删除或处理一次性用品

时间:2015-09-28 09:26:49

标签: c#

我需要将一次性物品存放为班级成员。这是HttpClient,它是一次性的,我可以手动处理它或使用它(var client = new ....)。现在想象一下这种情况:

public class Session
{
    private HttpClient m_httpClient;

    public Session()
    {
       m_httpClient = new HttpClient();
    }
}

如何处置HttpClient?删除会话时垃圾收集器是否也处理一次性HttpClient? C ++中有析构函数。在C#中,它不是必需的。我是否应该将会话对象设置为一次性?谢谢。

1 个答案:

答案 0 :(得分:4)

你应该通过在你的类上实现IDisposible来解决这个问题,垃圾收集器不会自动处理这个对象。

下面是简化版,但请检查this article for the best practice以及this question & answer

public class Session : IDisposible
{
    private HttpClient m_httpClient;

    public Session()
    {
       m_httpClient = new HttpClient();
    }

    public void Dispose()
    {
       m_httpClient.Dispose();
    }
}