public static void Remove(OnXApplication applicationCore) { lock (SyncRoot) { if (_applicationCoreInstances.TryRemove(typeof(OnXApplication), out var instance) && instance != applicationCore) { _applicationCoreInstances.TryAdd(typeof(OnXApplication), instance); } } }
public static void Set(OnXApplication applicationCore) { lock (SyncRoot) { _applicationCoreInstances.AddOrUpdate( typeof(OnXApplication), key => applicationCore, (key, old) => { if (old != applicationCore) { Debug.WriteLine($"Установлен новый экземпляр приложения '{applicationCore.GetType().FullName}' на базе '{typeof(OnXApplication).FullName}'. Возможны проблемы с определением активного модуля при создании экземпляров ItemBase. Для корректной работы убедитесь, что предыдущее зарегистрированное ядро такого типа было остановлено."); } return(applicationCore); } ); } }
/// <summary> /// Вызывается при загрузке сборок (<see cref="System.Reflection.Assembly"/>) после запуска ядра. /// </summary> protected virtual void ExecuteStartLazy(OnXApplication core) { }
void IExecuteStartLazy <OnXApplication> .ExecuteStartLazy(OnXApplication core) { ExecuteStartLazy(core); }
void IExecuteStart <OnXApplication> .ExecuteStart(OnXApplication core) { ExecuteStart(core); }