public static IIocService AddDeviceServices(this IIocService iocService) { iocService.RegisterImplementation <IDeviceInfoService, DeviceInfoService>(IocLifetime.Singleton); iocService.RegisterImplementation <IApplicationInfoService, ApplicationInfoService>(); iocService.RegisterImplementation <ISecureStorageService, SecureStorageService>(); return(iocService); }
public static IIocService AddGeolocation(this IIocService iocService) { iocService.RegisterImplementation <IGeolocationService, GeolocationService>(IocLifetime.Singleton); iocService.RegisterImplementation <IGeolocationProxy, XamarinEssentialsGeolocationProxy>(); iocService.RegisterImplementation <IReactiveSchedulers, ReactiveSchedulers>(); return(iocService); }
/// <summary> /// A singleton object cannot depend on a scoped object because it "captures" the scoped object and may access /// if after the scope closes and destroys the object. To prevent this we eliminate the scope for a singleton /// evaluation and then put it back in case the singleton is part of a multiple object activation /// </summary> private IIocService ExchangeRequestScope(IBindingRequest request, IIocService newScope) { var ret = request.IocService; request.IocService = newScope; return(ret); }
public static IIocService RegisterConsoleLoggerClientService(this IIocService iocService) { iocService.RegisterImplementation <ITraceProxy, TraceProxy>(IocLifetime.Singleton); iocService.RegisterImplementation <IConsoleLogger, ConsoleLogger>(IocLifetime.Singleton); iocService.RegisterImplementation <IAnalyticsService, ConsoleLoggerService>(IocLifetime.Singleton); return(iocService); }
private static IRootNavigationWindow VisibleMainWindow(IIocService root) { var ret = root.Get <IRootNavigationWindow>(); ret.Show(); TryToNavigateToHomeViewModel(root, ret); return(ret); }
private static RootNavigationWindow VisibleMainWindow(IIocService root) { var ret = root.Get <RootNavigationWindow>(); ret.Show(); ((INavigationWindow)ret.DataContext).NavigateTo(root.Get <HomeScreenViewModel>()); return(ret); }
public static IIocService AddHttpClientHolder <TConfig>(this IIocService iocService) where TConfig : class, IGraphqlClientConfig { iocService.RegisterAccessToken(); iocService.RegisterImplementation <IGraphqlClientConfig, TConfig>(IocLifetime.Singleton); iocService.RegisterImplementation <IHttpClientFactory, HttpClientHolder>(IocLifetime.Singleton); return(iocService); }
public static IIocService AddDeviceServices(this IIocService iocService) { iocService.RegisterInstance <IRuntimePlatform>(RuntimePlatform.UWP); iocService.RegisterImplementation <IDeviceInfoService, UwpDeviceInfoService>(IocLifetime.Singleton); iocService.RegisterImplementation <IApplicationInfoService, ApplicationInfoService>(); iocService.RegisterImplementation <ISecureStorageService, SecureStorageService>(); return(iocService); }
public static IIocService AddDeviceServices(this IIocService iocService) { iocService.RegisterImplementation <IApplicationInfoService, ApplicationInfoService>(); iocService.RegisterImplementation <ISecureStorageService, SecureStorageService>(); iocService.RegisterImplementation <IThreadService, ThreadService>(); iocService.RegisterImplementation <IConnectivityService, ConnectivityService>(); iocService.RegisterImplementation <IDevicePermissionsService, DevicePermissionsService>(); return(iocService); }
CreateNetworkVariableServer(IIocService ioc, IBindingRequest br) { return((r, w) => { var dict = ioc.Get <BinaryObjectDictionary>(); return new NetworkVariableServer(ioc.Get <IVariableCache>(), new BinaryObjectPipeReader(r, dict), new BinaryObjectPipeWriter(w, dict)); }); }
private static App Application(IIocService root) { var application = root.Get <App>(); application.AttachDiRoot(new DiBridge(root)); application.InitializeComponent(); application.MainWindow = VisibleMainWindow(root); return(application); }
private static void TryToNavigateToHomeViewModel(IIocService root, IRootNavigationWindow ret) { if (ret.DataContext is INavigationWindow window && root.CanGet <IHomeViewModelFactory>() && CreateHomeViewModel(root) is {} home) { window.NavigateTo(home); } }
private static IIocService AddClient <TConfig, THandler>(this IIocService iocService) where TConfig : class, IPushNotificationsClientConfig where THandler : class, IPushNotificationTapHandler { iocService.RegisterType <THandler>(IocLifetime.Singleton); iocService.RegisterImplementation <IPushNotificationTapHandler, THandler>(IocLifetime.Singleton); iocService.RegisterImplementation <IPushNotificationsClientConfig, TConfig>(IocLifetime.Singleton); return(iocService); }
protected override void RegisterTypes(IContainerRegistry containerRegistry) { _iocService = new DryIocService(containerRegistry.GetContainer()); _iocService.RegisterType <NumberGenerator>(); _iocService.RegisterXamarinAnalyticsService <AnalyticsConfig>(); RegisterBuildConfig(); containerRegistry.RegisterForNavigation <NavigationPage>(); containerRegistry.RegisterForNavigation <MainPage, MainPageViewModel>(); }
private static Application Application(IIocService root) { var application = root.Get <Application>(); application.AttachDiRoot(new DiBridge(root)); if (VisibleMainWindow(root) is Window mainWin) { application.MainWindow = mainWin; } return(application); }
private static void Register(IIocService iocService) { var httpClientFactory = (IHttpClientFactory) new ServiceCollection() .AddHttpClient() .BuildServiceProvider() .GetService(typeof(IHttpClientFactory)); iocService.RegisterInstance(httpClientFactory); iocService.RegisterImplementation <IHttpClientService, Service.HttpClientService>(IocLifetime.Singleton); iocService.RegisterImplementation <IHttpClientServiceConfig, DefaultHttpClientServiceConfig>(IocLifetime.Singleton); iocService.RegisterConsoleLoggerClientService(); }
public static IIocService AddVoidMutationClientHandler <TMutationResponse, TCommandDto, TCommand, TMutationClient> (this IIocService services) where TMutationResponse : class where TMutationClient : class, IVoidQueryConverter <TMutationResponse, TCommandDto, TCommand> where TCommand : notnull where TCommandDto : notnull { services.RegisterImplementation <IVoidCommandHandler <TCommand>, VoidCommandClientHandler <TCommandDto, TCommand> >(IocLifetime.Singleton); services.RegisterImplementation <IVoidCommandHandler <TCommandDto>, VoidClientQueryHandler <TMutationResponse, TCommandDto, TCommand> >(IocLifetime.Singleton); services.RegisterImplementation <IVoidQueryConverter <TMutationResponse, TCommandDto, TCommand>, TMutationClient>(); services.RegisterImplementation <ICommandConverter <TCommandDto, TCommand>, TMutationClient>(); return(services); }
public static IIocService RegisterXamarinAnalyticsService <TConfig>(this IIocService iocService) where TConfig : class, IApplicationInsightsConfig { iocService.RegisterConsoleLoggerClientService(); iocService.RegisterImplementation <IApplicationInsightsConfig, TConfig>(IocLifetime.Singleton); iocService.RegisterImplementation <ITelemetryClientProxy, TelemetryClientProxy>(IocLifetime.Singleton); iocService.RegisterImplementation <ITelemetryDecorator, TelemetryDecorator>(); iocService.RegisterImplementation <IAnalyticsSessionFactory, XamarinSessionFactory>(IocLifetime.Singleton); iocService.RegisterImplementation <IAnalyticsService, AnalyticsService>(IocLifetime.Singleton); return(iocService); }
public static void Fill(this IIocService service, Span <object?> destination, IEnumerable <IBindingRequest> requests) { int pos = 0; foreach (var request in requests) { if (pos >= destination.Length) { return; } destination[pos] = service.Get(request); pos++; } }
private object FirstElligibleContainer(IIocService service, IBindingRequest bindingRequest) { IIocService?currentService = service; while (currentService != null && !bindingRequest.DesiredType.IsInstanceOfType(currentService)) { currentService = currentService.ParentScope; } if (currentService == null) { throw new IocException("No valid service container found"); } return(currentService); }
public static IProxyGenerator GetSource(IIocService service) { if (source == null) { lock (mutex) { if (source == null) { source = service.CanGet(typeof(IProxyGenerator))? service.Get <IProxyGenerator>(): new ProxyGenerator(); } } } return(source); }
public void TearDown() { Sut.Dispose(); Sut = null; }
public void Setup() { Sut = ConstructSut(); }
public static IIocService RegisterAppCenterPushNotificationsClient(this IIocService iocService) { iocService.RegisterImplementation <IPushNotificationClientService, AppCenterPushNotificationClientService>(); return(iocService); }
public object?Create(IIocService ioc) => creator(ioc);
public static object?[] Get(this IIocService service, IList <IBindingRequest> requiredParameters) { object?[] argumentArray = new object[requiredParameters.Count()]; service.Fill(argumentArray.AsSpan(), requiredParameters); return(argumentArray); }
public static object Get(this IIocService ioc, Type serviceTppe, params object[] arguments) { return(RecursiveExceptionTracker.BasisCall(ioc.Get, new RootBindingRequest(serviceTppe, ioc, arguments)) ?? throw new IocException("Type resolved to null")); }
public static T Get <T>(this IIocService ioc, params object[] arguments) => (T)ioc.Get(typeof(T), arguments);
public static bool CanGet(this IIocService ioc, IEnumerable <IBindingRequest> requests) => requests.All(ioc.CanGet);
public static bool CanGet(this IIocService ioc, Type type, params object[] arguments) => ioc.CanGet(new RootBindingRequest(type, ioc, arguments));