我正在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