我正在寫一些控制檯應用程序來移動SQLite數據庫之間的一些數據。用於連接和各種預處理語句中的類implenent IDisposable的,所以我使用using
塊實例化這些對象,像這樣:如何在課堂中共享IDisposable資源?
using (SQLiteConnection sqlite_conn = new SQLiteConnection(connectionString))
{
sqlite_conn.Open();
using (SQLiteCommand sqlite_cmd = new SQLiteCommand())
{
sqlite_cmd.Connection = sqlite_conn;
sqlite_cmd.CommandText = "INSERT INTO SOMETHING SOMETHING;";
sqlite_cmd.ExecuteNonQuery();
}
sqlite_conn.Close();
}
不過,我需要能夠在一個方法來創建這些連接,然後用其他方法調用它們。對於我將這些連接作爲實例變量進行存儲的最乾淨和最容易混淆的方式是什麼?我想確保他們的.Dispose()
方法以智能的方式被調用,但是看不到一種確保所有操作都發生在單個塊的上下文中的好方法。
我意識到這是一個C#newb問題,所以請定製你的答案。如果你有一個建議的解決方案,我會喜歡它,如果你包含一個代碼示例來說明。
編輯:我的用例是一個控制檯應用程序。有人傳入源和目標連接字符串,並且控制檯應用程序執行操作。我真的讓我的控制檯類節目本身實現IDisposable這樣?:
class Program : IDisposable
{
private SQLiteConnection sourceConnection;
private SQLiteConnection destinationConnection;
public void Dispose()
{
sourceConnection.Dispose();
destinationConnection.Dispose();
}
}
對我完全有用和有價值的信息。然而,它並沒有展示我需要的那種類型設計的一個好例子。在控制檯應用程序中,我是否會爲Program類本身實現IDisposable?我會在我的原始問題中添加詳細信息。 – danieltalsky 2009-05-06 01:37:07