/// <summary>
        /// Gets the injection adapter factory for this options object
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="requestLocalizationOptions"></param>
        /// <returns></returns>
        public static IRequestCultureProviderAdapterFactory GetInjectionAdapterFactory <T>(this RequestLocalizationOptions requestLocalizationOptions)
        {
            if (requestLocalizationOptions == null)
            {
                throw new ArgumentNullException(nameof(requestLocalizationOptions));
            }

            IRequestCultureProviderAdapterFactory fac = null;

            factories.TryGetValue(requestLocalizationOptions, out fac);
            return(fac);
        }
        /// <summary>
        /// Sets the injection adapter factory for this request options instance
        /// </summary>
        /// <param name="requestLocalizationOptions"></param>
        /// <param name="factory"></param>
        /// <returns></returns>
        public static RequestLocalizationOptions UseInjectionAdapterFactory(this RequestLocalizationOptions requestLocalizationOptions, IRequestCultureProviderAdapterFactory factory)
        {
            if (requestLocalizationOptions == null)
            {
                throw new ArgumentNullException(nameof(requestLocalizationOptions));
            }

            factories.Add(requestLocalizationOptions, factory);
            return(requestLocalizationOptions);
        }