Наследование: BaseHostServiceInstallerImpl
        public void UninstallService(HostSettings settings, Action beforeUninstall, Action afterUninstall)
        {
            var installer = new WindowsHostServiceInstallerImpl();

            Action<InstallEventArgs> tryBeforeUninstall = x => beforeUninstall?.Invoke();
            Action<InstallEventArgs> tryAfterUninstall = x => afterUninstall?.Invoke();

            installer.UninstallService(settings, _arguments, tryBeforeUninstall, tryAfterUninstall);
        }
        public void UninstallService(HostSettings settings, Action beforeUninstall, Action afterUninstall)
        {
            var installer = new WindowsHostServiceInstallerImpl();

            Action <InstallEventArgs> tryBeforeUninstall = x => beforeUninstall?.Invoke();
            Action <InstallEventArgs> tryAfterUninstall  = x => afterUninstall?.Invoke();

            installer.UninstallService(settings, _arguments, tryBeforeUninstall, tryAfterUninstall);
        }
        public void InstallService(InstallHostSettings settings, Action<InstallHostSettings> beforeInstall, Action afterInstall, Action beforeRollback, Action afterRollback)
        {
            var installer = new WindowsHostServiceInstallerImpl();

            Action<InstallEventArgs> tryBeforeInstall = x => beforeInstall?.Invoke(settings);
            Action<InstallEventArgs> tryAfterInstall = x => afterInstall?.Invoke();
            Action<InstallEventArgs> tryBeforeRollback = x => beforeRollback?.Invoke();
            Action<InstallEventArgs> tryAfterRollback = x => afterRollback?.Invoke();

            installer.InstallService(settings, _arguments, tryBeforeInstall, tryAfterInstall, tryBeforeRollback, tryAfterRollback);
        }
        public void InstallService(InstallHostSettings settings, Action <InstallHostSettings> beforeInstall, Action afterInstall, Action beforeRollback, Action afterRollback)
        {
            var installer = new WindowsHostServiceInstallerImpl();

            Action <InstallEventArgs> tryBeforeInstall  = x => beforeInstall?.Invoke(settings);
            Action <InstallEventArgs> tryAfterInstall   = x => afterInstall?.Invoke();
            Action <InstallEventArgs> tryBeforeRollback = x => beforeRollback?.Invoke();
            Action <InstallEventArgs> tryAfterRollback  = x => afterRollback?.Invoke();

            installer.InstallService(settings, _arguments, tryBeforeInstall, tryAfterInstall, tryBeforeRollback, tryAfterRollback);
        }
		public void UninstallService(HostSettings settings, Action beforeUninstall, Action afterUninstall)
		{
			var installer = new WindowsHostServiceInstallerImpl();

			Action<InstallEventArgs> tryBeforeUninstall = x =>
				{
					if (beforeUninstall != null)
					{
						beforeUninstall();
					}
				};

			Action<InstallEventArgs> tryAfterUninstall = x =>
			{
				if (afterUninstall != null)
				{
					afterUninstall();
				}
			};

			installer.UninstallService(settings, _arguments, tryBeforeUninstall, tryAfterUninstall);
		}
		public void InstallService(InstallHostSettings settings, Action beforeInstall, Action afterInstall, Action beforeRollback, Action afterRollback)
		{
			var installer = new WindowsHostServiceInstallerImpl();

			Action<InstallEventArgs> tryBeforeInstall = x =>
				{
					if (beforeInstall != null)
					{
						beforeInstall();
					}
				};

			Action<InstallEventArgs> tryAfterInstall = x =>
			{
				if (afterInstall != null)
				{
					afterInstall();
				}
			};

			Action<InstallEventArgs> tryBeforeRollback = x =>
			{
				if (beforeRollback != null)
				{
					beforeRollback();
				}
			};

			Action<InstallEventArgs> tryAfterRollback = x =>
			{
				if (afterRollback != null)
				{
					afterRollback();
				}
			};

			installer.InstallService(settings, _arguments, tryBeforeInstall, tryAfterInstall, tryBeforeRollback, tryAfterRollback);
		}