예제 #1
0
        /// <summary>
        /// Unregisters a child <see cref="EngineElement"/> (opposite of <see cref="RegisterChild"/>).
        /// </summary>
        /// <param name="element">The <see cref="EngineElement"/> to unregister. Silently ignores <c>null</c>.</param>
        protected void UnregisterChild(EngineElement element)
        {
            if (element == null)
            {
                return;
            }

            _toSetEngine.Remove(element);
            _toDispose.Remove(element);
        }
예제 #2
0
        /// <summary>
        /// Registers a child <see cref="EngineElement"/> for automatic <see cref="Engine"/> setting and <see cref="Dispose"/> calling.
        /// </summary>
        /// <param name="element">The <see cref="EngineElement"/> to register. Silently ignores <c>null</c>.</param>
        /// <param name="autoDispose">Controls whether the <paramref name="element"/> is automatically disposed when <see cref="Dispose"/> is called.</param>
        protected void RegisterChild(EngineElement element, bool autoDispose = true)
        {
            if (element == null)
            {
                return;
            }

            if (autoDispose)
            {
                _toDispose.Add(element);
            }
            if (IsEngineSet)
            {
                element.Engine = Engine;
            }
            _toSetEngine.Add(element);
        }