Код: Выделить всё
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
public class FileDataWriter : IDataWriter {}
public class NameAnonymiser (IDataWriter dataWriter) : IAnonymiser {}
public class AddressFormatter (IAnonymiser anonymiser) : IFormatter {}
public class CustomerFileController (IFormatter formatter) : ControllerBase {}
Однако мне нужно представить CustomerDatabaseController, который использует те же зависимости, за исключением того, что для dataWriter нам нужно писать в базу данных вместо этого:
Код: Выделить всё
public class DatabaseDataWriter : IDataWriter {}
public class CustomerDatabaseController (IFormatter formatter) : ControllerBase {}
Я с радостью переработаю сервис регистрации, но мне бы очень хотелось избежать необходимости передавать такой параметр, как «UseFileWriter» или «UseDatabaseWriter», от контроллеров через различных поставщиков, чтобы они наконец выбрали правильный экземпляр IDataWriter.