В настоящее время я создаю приложение, в котором я рассматриваю возможность поддержки нескольких баз данных (SQL Server, MySQL).Поддержка нескольких баз данных Autofac
Я рассматриваю, чтобы иметь что-то вроде следующего:
public interface IUserEngine {
User Get(int id);
}
public class MsSqlUserEngine : IUserEngine {
public User Get(int id) {
// implementation
}
}
public class MySqlUserEngine : IUserEngine {
public User Get(int id) {
// implementation
}
}
На данный момент у меня просто есть интерфейс и реализацию фиксированной SQL Server (UserEngine
). Я уже использую AutoFac для ввода IUserEngine
в свой логический уровень.
В моем AutofacConfig
классе я следующее:
builder.RegisterType<UserEngine>().As<IUserEngine>();
Чтобы перейти от этой реализации SQL Server для будущей реализации MySQL, что бы мне нужно изменить?
Просто добавьте оператор if, который будет читать AppSetting из файла конфигурации и зарегистрировать соответствующий тип?
Собираетесь ли вы использовать MsSqlUserEngine и MySqlUserEngine во время выполнения? – Win
Нет. Только по одному. Я думал, что там должен быть какой-то конфигурационный файл, позволяющий Autofac соответствующим образом разрешать зависимость. – HelderMPinhal