У меня есть приложение, которое использует Structuremap для DI как для моего бизнеса, так и для слоя DAL. До этого момента у меня был единственный DAL для среды, над которой я работал. Поэтому я бы взял его из конфигурации и использовал это значение для всех моих подключений. Примером этого является.Injection Dependency для DAL с несколькими строками базы данных с использованием StructureMap
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ToString()))
{
//Do a call to db here.
}
Я вызываю этот метод, используя структуру структуры следующим образом.
ObjectFactory.GetInstance<IDALManager>().MethodName();
Теперь у меня есть новая функция, где я хочу, чтобы разрешить пользователям вносить изменения в среде Dev, а затем нажмите кнопку, чтобы поднять его, чтобы проверить или прод среды. Поэтому моя строка соединения для менеджера DAL должна будет иметь возможность меняться. Я также хотел бы сохранить весь доступ к строке соединения в DAL, а не в других слоях. Я ищу советы о том, как это сделать или какие шаблоны дизайна нужно изучить.
ОБНОВЛЕННАЯ ИНФОРМАЦИЯ Пользователь определит, какая строка соединения должна использоваться. Например, они будут перемещать данные из dev для тестирования, они будут выбирать источник и пункт назначения.
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();' from? почему вы хотите сохранить весь доступ к строке соединения в DAL? –
Я вызываю этот метод в бизнес-слое. Я хочу сохранить строку соединения в DAL для разделения внимания. На самом деле это мой первый раз, когда я использую DI, и мне хотелось бы, чтобы некоторые рекомендации касались того, как правильно обрабатывать несколько строк соединения. – Nate
Как вы собираетесь решить, какую строку подключения использовать? Можете ли вы предоставить некоторый псевдокод о том, как такое решение будет? –