2017-08-09 23 views
1

J'essaie de faire en sorte que l'injecteur de dépendances de .Net Cores utilise un validateur par défaut pour tous les nouveaux types de services créés..NetCore Create FluentValidator par défaut pour tous les types

Mon démarrage ressemble à ceci:

services.AddMvc(config => config.Filters.Add(new AuthorizeFilter(authorizationPolicy))) 
     .AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining<Startup>()); 

et mon défaut Validator ressemble à ceci:

public class DefaultValidator<TEntity> : AbstractValidator<TEntity> 
{ 
} 

Il est vraiment gênant d'avoir à enregistrer le validateur pour chaque nouveau service que je crée, je voudrais utiliser celui par défaut pour tout type enregistré inconnu.

Je sais qu'il peut être vu comme semi-dangereux, mais c'est à des fins de test et je peux l'avoir jeter si c'est sur la production, donc ce n'est pas un problème.

Comment puis-je enregistrer un validateur par défaut avec l'injecteur de dépendances de .Net Core?

+0

https://stackoverflow.com/a/33567396/5233410 – Nkosi

+0

@Nkosi, Merci qui devrait être parfaite, je ne savais pas vous pouvez enregistrer les choses génériquement –

+0

Maintenant, je ne suis pas totalement sûr que cela fonctionne avec ce cadre. Je ne l'ai jamais vraiment testé personnellement. Mais j'ai déjà vu cette question et je me suis souvenu de ce post. Je crois que cela devrait fonctionner. – Nkosi

Répondre

1

Vous devriez pouvoir vous inscrire en utilisant les génériques ouverts comme dans cet exemple

services.AddScoped(typeof(IValidator<>), typeof(DefaultValidator<>));