using ElectronNET.API.Interfaces; using Microsoft.Extensions.DependencyInjection; namespace ElectronNET.API { /// /// /// public static class ServiceCollectionExtensions { /// /// Adds the Members to the Service Collection /// public static IServiceCollection AddElectron(this IServiceCollection services) => services // adding in this manner to ensure late binding. // this set for backwards compatibility .AddSingleton(provider => IpcMain.Instance) .AddSingleton(provider => App.Instance) .AddSingleton(provider => AutoUpdater.Instance) .AddSingleton(provider => WindowManager.Instance) .AddSingleton(provider => Menu.Instance) .AddSingleton(provider => Dialog.Instance) .AddSingleton(provider => Notification.Instance) .AddSingleton(provider => Tray.Instance) .AddSingleton(provider => GlobalShortcut.Instance) .AddSingleton(provider => Shell.Instance) .AddSingleton(provider => Screen.Instance) .AddSingleton(provider => Clipboard.Instance) .AddSingleton(provider => HostHook.Instance) .AddSingleton(provider => PowerMonitor.Instance) .AddSingleton(provider => NativeTheme.Instance) .AddSingleton(provider => Dock.Instance) .AddSingleton(provider => new ApplicationSocket { Socket = BridgeConnector.Socket, }) // this set for proper dependency injection .AddSingleton(_ => IpcMain.Instance) .AddSingleton(_ => App.Instance) .AddSingleton(_ => AutoUpdater.Instance) .AddSingleton(_ => WindowManager.Instance) .AddSingleton(_ => Menu.Instance) .AddSingleton(_ => Dialog.Instance) .AddSingleton(_ => Notification.Instance) .AddSingleton(_ => Tray.Instance) .AddSingleton(_ => GlobalShortcut.Instance) .AddSingleton(_ => Shell.Instance) .AddSingleton(_ => Screen.Instance) .AddSingleton(_ => Clipboard.Instance) .AddSingleton(_ => HostHook.Instance) .AddSingleton(_ => PowerMonitor.Instance) .AddSingleton(_ => NativeTheme.Instance) .AddSingleton(_ => Dock.Instance) .AddSingleton(_ => Process.Instance) .AddSingleton(provider => provider.GetService()); } }