为什么ASMX WebMethod中的finally块是用Close和Dispose编写的

时间:2011-06-09 18:24:35

标签: web-services oracle asmx

我正在考虑修改ASMX中的旧学校WebMethod和Oracle连接,我看到这些块重复了一千次。我最终想把它转换成WCF但是现在这有什么问题呢?

finally
{
    if (command != null)
    {
        command.Dispose();
        command = null;
    }
    if (connection != null)
    {
        connection.Close();
        connection.Dispose();
        connection = null;
    }
    if (adapter != null)
    {
        adapter.Dispose();
        adapter = null;
    }
}

1 个答案:

答案 0 :(得分:1)

我们的想法是清理与Oracle数据库连接以及针对它执行的任何命令以及所使用的任何数据适配器相关的所有内容。

将此代码放在finally块中可确保关闭连接并调用其调用所使用的资源并收集垃圾。

它没有任何问题,但这种逻辑可以被抽象掉,所以不必一遍又一遍地重复。