我们从 Visual Studio 2010 中的代码分析中收到以下警告,我想知道这是否是我们可以安全忽略的误报,或者应该重构代码以正确处理对象。
相关代码:
public void MyFunction()
{
OracleConnection oraConnection = null;
OracleCommand oraCommand = null;
try
{
// Connect to the database
oraConnection = new OracleConnection(connectionString);
oraConnection.Open();
// Prepare and run the query
oraCommand = new OracleCommand(sqlQuery, oraConnection);
oraCommand.ExecuteNonQuery();
}
catch { throw; }
finally
{
// Perform a safe cleanup
if (oraCommand != null) { oraCommand.Dispose(); }
if (oraConnection != null)
{
oraConnection.Close();
oraConnection.Dispose();
}
}
}
相关错误信息:
警告 18 CA2202:Microsoft.Usage:对象“oraConnection”可以在方法“ClassName.MyFunction()”中多次处理。为避免生成 System.ObjectDisposedException,您不应在一个对象上多次调用 Dispose。