/// <summary>
        /// Initialises a new instance of <see cref="DefaultWidgetInvoker"/>.
        /// </summary>
        /// <param name="typeActivatorCache">The type activator cache.</param>
        /// <param name="widgetActivator">The widget activator.</param>
        /// <param name="argumentBinder">The widget argument binder.</param>
        public DefaultWidgetInvoker(ITypeActivatorCache typeActivatorCache, IWidgetActivator widgetActivator, IWidgetArgumentBinder argumentBinder)
        {
            if (typeActivatorCache == null)
            {
                throw new ArgumentNullException(nameof(typeActivatorCache));
            }

            if (widgetActivator == null)
            {
                throw new ArgumentNullException(nameof(widgetActivator));
            }

            if (argumentBinder == null)
            {
                throw new ArgumentNullException(nameof(argumentBinder));
            }

            _typeActivatorCache = typeActivatorCache;
            _widgetActivator = widgetActivator;
            _argumentBinder = argumentBinder;
        }
        /// <summary>
        /// Initialises a new instance of <see cref="DefaultWidgetInvokerFactory"/>.
        /// </summary>
        /// <param name="typeActivatorCache">The type activator cache.</param>
        /// <param name="widgetActivator">The widget activator.</param>
        /// <param name="argumentBinder">The widget argument binder.</param>
        public DefaultWidgetInvokerFactory(ITypeActivatorCache typeActivatorCache, IWidgetActivator widgetActivator, IWidgetArgumentBinder argumentBinder)
        {
            if (typeActivatorCache == null)
            {
                throw new ArgumentNullException(nameof(typeActivatorCache));
            }

            if (widgetActivator == null)
            {
                throw new ArgumentNullException(nameof(widgetActivator));
            }

            if (argumentBinder == null)
            {
                throw new ArgumentNullException(nameof(argumentBinder));
            }

            _typeActivatorCache = typeActivatorCache;
            _widgetActivator    = widgetActivator;
            _argumentBinder     = argumentBinder;
        }