/// <summary>
        /// Creates new instance of <see cref="AutofacJsonTokenConverter"/>.
        /// </summary>
        /// <param name="scope">Autofac container.</param>
        /// <param name="typesToConvertViaAutofac">Types that should be converted using autofac.</param>
        /// <param name="jsonSerializerSettingsProvider">Provides <see cref="JsonSerializerSettings"/> to be used by <see cref="JsonSerializer"/>.</param>
        public AutofacJsonTokenConverter([NotNull] ILifetimeScope scope, [NotNull] IEnumerable <AutofacJsonTokenConverterType> typesToConvertViaAutofac, [CanBeNull] IAutofacJsonTokenConverterJsonSettingsProvider jsonSerializerSettingsProvider = null)
        {
            if (scope == null)
            {
                throw new ArgumentNullException(nameof(scope));
            }
            if (typesToConvertViaAutofac == null)
            {
                throw new ArgumentNullException(nameof(typesToConvertViaAutofac));
            }

            _jsonSerializerSettingsProvider = jsonSerializerSettingsProvider;
            _converters = typesToConvertViaAutofac.Select(t => new AutofacCreationJsonConverter(t.Type, scope)).ToList();
        }