2 개의 프로젝트에 대해 C#으로 클래스 라이브러리를 구축하고 있습니다. 이 클래스 라이브러리는 SQLServer 데이터베이스에 대한 많은 연결을 수행합니다.mock static 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