У меня есть ситуация, когда я хочу переключаться между «FakeService» и «RealService» во время выполнения.
MyViewModel
public class BookingViewModel
{
private readonly IBookingService bookingService;
public WelcomePageViewModel(
INavigationService navigationService,IBookingService bookingService)
{
this.bookingService= bookingService;
}
}
В моем App.xaml я делаю следующее:
private IContainer container;
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
container = containerRegistry.GetContainer();
RegisterRealServices()
}
private void RegisterRealServices()
{
container.Register<IBookingService, RealBookingService>(Reuse.Singleton);
}
пользователь нажимает опцию меню, чтобы использовать поддельные сервисы. Так что отмените регистрацию реальных и используйте поддельные.
Однако то, что я сделал ниже, не делаетпохоже, работает, потому что я продолжаю перенаправляться на «RealBookingService», а не на «FakeBookingService»
Как я могу это сделать?
private void RegisterFakeServices()
{
container.Unregister<IBookingService>();
container.Register<IBookingService,FakeBookingService>(
Reuse.Singleton,
ifAlreadyRegistered: IfAlreadyRegistered.Replace);
}
Вопрос: можно ли переключить реализацию службыво время выполнения?Как вы делаете это с помощью DryIoc?