Olá! Tudo bem?
Recentemente necessitei de uma funcionalidade onde lia arquivos texto e criava objetos. Estava fazendo um trabalho bem repetitivo e minhas classes que instanciavam os objetos, precisavam saber em qual posição do array deveria buscar para setar nas propriedades:
Assim, pensei na possibilidade de minhas classes DTOs definirem nas propriedades quais posições do arquivo os valores delas estava. Criei um atributo para setar nas propriedades e passar o index que o valor dela está no array:
E defini os atributos nas propriedades:
Agora que minha classe já sabe em qual posição da linha do arquivo o valor dela está definido, eu preciso setar o valor com base na posição dela. Criei uma classe abstrata que no construtor, receberia o array da linha lida e setaria os valores nas propriedades:
Por fim, nossa classe DTO, ficaria dessa forma e nosso método que o instancia, mais enxuto e sem a necessidade de saber quais propriedades setar:
Acredito que tenha perdido um pouco de performance por conta do uso de Reflection, farei um post comparando com o BenchmarkDotNet, entretanto conseguimos generalizar o comportamento necessário.
É isto! Você vê alguma forma que posso melhorar meu código ou outra abordagem? Comenta aí!
Até mais!
Top comments (0)