/// <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(); }