我正在C#中爲兩個項目構建一個類庫。這個類庫與SQLServer數據庫有很多連接。模擬靜態C#數據庫類
,因爲這個庫只是從SQLServer數據庫,以便有一個靜態類是負責的負載連接設置並打開它檢索數據。然後庫的類接收所需的數據來執行查詢並返回結果。所有這些都是使用靜態方法完成的。
就是這樣。
internal static class DBConnection
{
private const String connectionString = "some connection string";
public static SqlConnection open() { /* ... open the connection ... */ }
}
public static class DataXRetriever
{
public static List<DataX> RetrieveById(Int32[] ids)
{
using (SqlConnection connection = DBConnection.open())
{
/* ... do a query ... */
/* ... do something with the result of the query ... */
/* ... return it ... */
}
}
/* ... some other static methods ... */
}
我想要做一個測試單元,這些樣的方法,而不需要被連接到數據庫中,我一直在閱讀,這是可以做到實例包含連接類,並給它將使用它的類,但是我的設計不能像那樣工作。
這就是爲什麼你不應該使用靜態類或單例。 – SLaks
添加到StriplingWarrior的答案,看看Ninject(依賴注入)。你明確地根據接口進行編程。 http://www.ninject.org – Fredrik