/// <summary> /// Конструктор. /// </summary> /// <param name="host">Модуль.</param> /// <param name="callbacks">Обратные вызовы.</param> /// <param name="attachToParentEvents">Присоединить к родительским событиям.</param> public BaseModuleLogic(object host, IBaseModuleLogicSuspendAwareCallbacks callbacks, bool attachToParentEvents = false) { _host = host ?? throw new ArgumentNullException(nameof(host)); _suspendAwareCallbacks = callbacks; _callbacks = callbacks; _attachToParentDispose = attachToParentEvents; _suspendedAware = true; }
/// <summary> /// Конструктор. /// </summary> /// <param name="suspendedAware">Поддерживает приостановку работы.</param> /// <param name="attachToParentDispose">Присоединить к родительскому событию по завершению работы.</param> protected ModuleBase(bool suspendedAware, bool attachToParentDispose) { if (suspendedAware) { IBaseModuleLogicSuspendAwareCallbacks callbacks = this; _moduleLifetime = new BaseModuleLogic <TIntf>(this, callbacks, attachToParentDispose); } else { IBaseModuleLogicCallbacks callbacks = this; _moduleLifetime = new BaseModuleLogic <TIntf>(this, callbacks, attachToParentDispose); } }