Есть ли причина, по которой я не получаю внедренную службу в свой пользовательский RegisterBinderProvider?
services.AddScoped<IPasswordHasher, PasswordHasher>();
services.AddMvc(options =>
{
RegisterBinderProvider registerBinderProvider =
DependencyResolver.Current.GetService<RegisterBinderProvider>();
options.ModelBinderProviders.Insert(0, registerBinderProvider);
options.Filters.Add(typeof(ApiExceptionFilter));
});
После этого кода, когда я нахожусь в классе RegisterBinderProvider, я вижу значение PasswordHasher услуга равна нулю. Однако я проверил уже внедренные службы перед тем, как вставить RegisterBinderProvider, и смог найти в нем PasswordHasher.
Если он вам нужен, это мой пользовательский BinderProvider:
public class RegisterBinderProvider : IModelBinderProvider
{
private readonly IPasswordHasher _passwordHasher;
public RegisterBinderProvider(IPasswordHasher passwordHasher)
{
_passwordHasher = passwordHasher;
}
public IModelBinder GetBinder(ModelBinderProviderContext context)
{
if (context.Metadata.ModelType == typeof(User))
{
return new RegisterBinder(_passwordHasher);
}
return null;
}
}
I надеюсь, я предоставил достаточно информации, чтобы понять мою проблему, спасибо!