使用和Web服务调用

时间:2010-02-11 19:25:19

标签: .net asp.net web-services memory-management using-statement

using语句有什么作用?它真的需要吗?

    using (MyWebservice x = new MyWebservice())
    {
    //random code
    }

4 个答案:

答案 0 :(得分:3)

http://msdn.microsoft.com/en-us/library/yh598w02.aspx

  

using语句确保即使在对象上调用方法时发生异常,也会调用Dispose。您可以通过将对象放在try块中然后在finally块中调用Dispose来实现相同的结果;实际上,这就是编译器如何翻译using语句。

答案 1 :(得分:1)

不,不需要。我们的网络服务专家只是为了确保您的关注而使用它。

答案 2 :(得分:1)

syntactic sugardisposable pattern。编译时,它会扩展为生成的IL代码中的完整模式。

()内初始化的对象将在超出范围时调用它Dispose方法。这就是为什么只有实现IDisposable的类才能使用它。

请参阅MSDN article了解相关信息。

答案 3 :(得分:0)

要回答你的问题“using语句有什么作用?”,这里有一些例子来说明using语句的更常见用法,以确保在其他答案中引用的处理:

确保StringWriter和XmlTextWriter在我们使用完毕后处理(关闭):

using (StringWriter sw = new StringWriter(sb))
        using (XmlTextWriter xw = new XmlTextWriter(sw))
        {
            WebPartManager1.ExportWebPart(partToExport, xw);  
        }

确保处理数据库连接和命令对象:

DataTable dt = new DataTable();

using (SqlConnection connection = new SqlConnection("ConnectionString"))
using (SqlCommand command = new SqlCommand())
{
    command.Connection = connection;
    command.CommandText = "SELECT * FROM Customers";

connection.Open();
using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
{
    dt.Load(reader);
}
}