好的,所以我有一个A类实现方法M1,它采用excel路径和工作表名称,并返回一个OledbDataReader。 B类调用方法M1,用OledbDataReader做一些事情,然后关闭OledbDataReader。但我如何关闭OLEDBConnection对象?我无法访问它,因为A类中的M1打开了连接!有任何想法吗?谢谢你
答案 0 :(得分:1)
如果您在外部课程中使用过这样的话。
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
}
这将及时处理它......
答案 1 :(得分:1)
您可以像这样改造A班:
class HelperClass : IDisposable
{
private bool _disposed;
private OleDbConnection _connection;
public HelperClass()
{
_connection = << open the conection >>;
}
public OledbDataReader GetOpenedReader()
{
return << open your reader here with the connection >>;
}
public void Dispose()
{
if (!_disposed)
{
_disposed = true;
_connection.Dispose();
}
}
}
然后调用类的负责任就是使用你的类:
using (var helperClass = new HelperClass())
{
// call the method that opens the reader and uses it
}
答案 2 :(得分:0)
在A类实施IDisposable