ASPNET CORE Validação com Injeção de Dependência.

Com o tutorial ASPNET Core Validação Customizadas Server Side e Client Side explica basicamente formas na criação de validações próprias e o foco é blindar a sua aplicação e melhorar os processos de validação de modelos.

Nesse tutorial adicional é demonstrado o uso da parte da injeção de dependência (recurso nativo nas aplicações .NET CORE) dentro de um classe de validação, muito útil para acesso a diversos recursos disponibilizados pela aplicação como por exemplo, acesso a base de dados e informações de alguma camada proposta ou existente na aplicação.

O exemplo que é proposto é o seguinte, tem um classe com o nome de People que possui o seguinte layout:

public class People
{
[Required]
public Guid Id { get; set; }

sendo que no NickName tem um atributo de validação com o nome de Unique. O corpo de código desse atributo segue:

public class UniqueAttribute : ValidationAttribute
{

e nesse código resgato a classe do Entity Framework (ORM)para busca na tabela referente validando se o campo NickName não existe para cadastros novos ou na alteração confere se o NickName é da mesma pessoa ou diferente.

Esse exemplo é a forma de buscar as instâncias que estão previamente configuradas como injeção de dependência na aplicação sendo que o código que está no corpo dessa classe UniqueAttribute utilizando validationContext.GetService passando o tipo (typeof) para a busca do objeto que tem acesso a base de dados, exemplo:

DatabaseService service = validationContext
.GetService(typeof(DatabaseService)) as DatabaseService;

O exemplo completo no meu Github acessa aqui.

Referencia

Bacharel em Sistemas de Informação, MTAC (Multi-Plataform Technical Audience Contributor-Microsoft), BackEnd C# e PHP e Developer Web

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store