#asp.net #asp.net-mvc-3
#asp.net #asp.net-mvc-3
Вопрос:
Я разрабатываю ASP.NET Приложение MVC с использованием Unity DI framework. Я пытаюсь использовать сценарий веб-приложения для подключения другого сегмента URI на основе базы данных. Я попробовал несколько вариантов, и это не увенчалось успехом.
Я регистрирую все объекты в контейнере unity при событии загрузки приложения в файле Gloabl.asax. Подключение к единой базе данных работает нормально.
container.RegisterType<IContext, DbContext>(new PerRequestLifetimeManager(), new InjectionConstructor("data source=.; Initial Catalog=catalog1; User ID=sa; Password=xxxxxx;"));
Но я хочу динамически изменять строку подключения на основе параметра URI. Нравится http://www.domain.com/ABC
. Если ABC
, требуется подключить другую базу данных. Как мне вручную повторно настроить DbContext
объект во время выполнения перед подключением к базе данных? или какой альтернативный вариант является наилучшим?
Ответ №1:
Вы можете назвать регистрацию типа, а затем разрешить по имени:
container.RegisterType<IContext, DbContext>("ABC", new PerRequestLifetimeManager(), new InjectionConstructor("data source=.; Initial Catalog=catalog1; User ID=sa; Password=xxxxxx;"));
container.Resolve<IContext>("ABC")