/// <summary> /// Disposes active view models. /// </summary> public virtual void Dispose() { foreach (var kvp in _activeVMs) { DisposeViewModel(kvp.Value); } lock (_serviceScopeLock) { _serviceScope?.Dispose(); _serviceScope = null; } }
/// <summary> /// Constructor. /// </summary> /// <param name="vmResponse">Function invoked by the view model to provide response back to the client.</param> /// <param name="serviceScope">Dependency injection service scope.</param> public VMController(VMResponseDelegate vmResponse, IVMFactory vmFactory, IVMServiceScope serviceScope = null) : this() { _vmResponse = vmResponse ?? throw new ArgumentNullException(nameof(vmResponse)); _vmFactory = vmFactory; _serviceScope = serviceScope; }