/// <summary>
        /// Use DB for localization
        /// </summary>
        /// <param name="provider"></param>
        /// <param name="localizer">localizer factory</param>
        /// <param name="mbErrors">Model binding errors</param>
        public static void SetLocalizedModelBindingErrorMessages(this DefaultModelBindingMessageProvider provider, ModelBindingErrors mbErrors, IStringLocalizer localizer)
        {
            provider.SetAttemptedValueIsInvalidAccessor((x, y)
                                                        => GetLoclizedModelBindingError(localizer, mbErrors.AttemptedValueIsInvalidAccessor, x, y));

            provider.SetMissingBindRequiredValueAccessor((x)
                                                         => GetLoclizedModelBindingError(localizer, mbErrors.MissingBindRequiredValueAccessor, x));

            provider.SetMissingKeyOrValueAccessor(()
                                                  => GetLoclizedModelBindingError(localizer, mbErrors.MissingKeyOrValueAccessor));

            provider.SetMissingRequestBodyRequiredValueAccessor(()
                                                                => GetLoclizedModelBindingError(localizer, mbErrors.MissingRequestBodyRequiredValueAccessor));

            provider.SetNonPropertyAttemptedValueIsInvalidAccessor((x)
                                                                   => GetLoclizedModelBindingError(localizer, mbErrors.NonPropertyAttemptedValueIsInvalidAccessor, x));

            provider.SetNonPropertyUnknownValueIsInvalidAccessor(()
                                                                 => GetLoclizedModelBindingError(localizer, mbErrors.NonPropertyUnknownValueIsInvalidAccessor));

            provider.SetNonPropertyValueMustBeANumberAccessor(()
                                                              => GetLoclizedModelBindingError(localizer, mbErrors.NonPropertyValueMustBeANumberAccessor));

            provider.SetUnknownValueIsInvalidAccessor((x)
                                                      => GetLoclizedModelBindingError(localizer, mbErrors.UnknownValueIsInvalidAccessor, x));

            provider.SetValueIsInvalidAccessor((x)
                                               => GetLoclizedModelBindingError(localizer, mbErrors.ValueIsInvalidAccessor, x));

            provider.SetValueMustBeANumberAccessor((x)
                                                   => GetLoclizedModelBindingError(localizer, mbErrors.ValueMustBeANumberAccessor, x));

            provider.SetValueMustNotBeNullAccessor((x)
                                                   => GetLoclizedModelBindingError(localizer, mbErrors.ValueMustNotBeNullAccessor, x));
        }
 /// <summary>
 /// Initialize a new instance of <see cref="XModelBindingMetadataProvider"/>
 /// </summary>
 /// <param name="strLocalizer"></param>
 /// <param name="options"></param>
 public XModelBindingMetadataProvider(IStringLocalizer strLocalizer, IOptions <XLocalizerOptions> options)
 {
     localizer = strLocalizer;
     mbErrors  = options.Value.ModelBindingErrors;
 }