protected override void CreateActivateControl( RunControlOptions options, ResetServant <TDescription> component, RunControlAttemptStateFactory attemptState, Func <IRunControlAttemptState, Task> beforeActivate, Func <IRunControlAttemptState, Task> activate, Func <Task> deactivate, CancellationToken deactivationToken, out IRunControl <ResetServant <TDescription> > control) => control = ReadIA(ref _activateControlFactory, locationName: nameof(_activateControlFactory)) (options : options, component : component, attemptState : attemptState, beforeStart : beforeActivate, start : activate, stop : deactivate, stopToken : deactivationToken);
protected virtual void CreateActivateControl( RunControlOptions options, TXAppScopeInstance component, RunControlAttemptStateFactory attemptState, Func <IRunControlAttemptState, Task> beforeActivate, Func <IRunControlAttemptState, Task> activate, Func <Task> deactivate, CancellationToken deactivationToken, out IRunControl <TXAppScopeInstance> control) => control = new RunControl <TXAppScopeInstance>( options: options, component: component, attemptState: attemptState, beforeStart: beforeActivate, start: activate, stop: deactivate, stopToken: deactivationToken);
// TODO: Put strings into the resources. // static void P_EnsureOptionsValid(RunControlOptions options) { switch (options & (RunControlOptions.SingleStart | RunControlOptions.MultipleStart)) { case RunControlOptions.MultipleStart: case RunControlOptions.SingleStart: break; case (RunControlOptions.SingleStart | RunControlOptions.MultipleStart): throw new ArgumentException( message: $"Указаны несовместимые опции элемента управления запуском/остановки компонента. Опция '{RunControlOptions.SingleStart.ToString()}' не совместима с опцией '{RunControlOptions.MultipleStart.ToString()}'.", paramName: nameof(options)); case RunControlOptions.None: throw new ArgumentException( message: $"Указанные опции элемента управления запуском/остановки компонента '{options.ToString()}' не определяют режим запуска компонента: однократный или многократный.", paramName: nameof(options)); } }