DI 용 Structuremap을 사용하여 비즈니스 및 DAL 계층에 모두 사용할 수있는 응용 프로그램이 있습니다. 이 시점까지, 나는 작업하고있는 환경마다 하나의 DAL을 가지고있었습니다. 그래서 내가 config에서 그것을 잡아 내 모든 연결에 대한 그 값을 사용합니다. 이것의 한 예가 있습니다.StructureMap을 사용하여 여러 데이터베이스 문자열을 사용하는 DAL에 대한 종속성 삽입
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ToString()))
{
//Do a call to db here.
}
다음과 같이 구조체 맵을 사용하여이 메서드를 호출합니다.
ObjectFactory.GetInstance<IDALManager>().MethodName();
지금 나는 사용자가 디바이스 환경에서 변경 후 테스트 또는 자극 환경에 상승하기 버튼을 눌러 허용 할 새로운 기능이 있습니다. 따라서 DAL 관리자의 연결 스트링을 변경할 수 있어야합니다. 또한 DAL에있는 모든 연결 문자열 액세스를 유지하고 다른 레이어에는 액세스하지 않으려합니다. 이 작업을 수행하는 방법이나이 패턴을 조사 할 디자인 패턴에 대한 조언을 찾고 있습니다.
업데이트 된 정보 사용자는 어떤 연결 문자열을 사용해야하는지 결정할 것입니다. 예를 들어, 그들은 dev에서 test로 데이터를 이동할 것이고, 소스와 목적지를 선택할 것입니다.
string source = \\user selection from combobox.
if (source == "DEV")
{
//Instantiate dev instance of manager
}
if (source == "TEST")
{
//Instantiate Test Instance of manager.
}
이 'ObjectFactory.GetInstance() .MethodName();'을 어디에서 호출합니까? 왜 DAL에 모든 연결 문자열 액세스를 유지하려고합니까? –
나는 비지니스 레이어에서 그 메소드를 호출하고있다. 우려의 분리를 위해 연결 문자열을 DAL에 보관하고 싶습니다. 실제로 이것은 DI를 처음 사용하는 것으로 여러 연결 문자열을 처리하는 올바른 방법에 대한 지침이 필요합니다. – Nate
사용할 연결 문자열을 어떻게 결정할 예정입니까? 그러한 결정이 어떻게 될 것인지 의사 코드를 제공 할 수 있습니까? –