franciscogazitua / IIC2113-2024

Consultas sobre el proyecto en las Issues
4 stars 0 forks source link

[E3] Encapsular DTO #78

Open camibennett opened 4 months ago

camibennett commented 4 months ago

Hola! Estoy intentando encapsular mis listas de DTO, pero me deja de funcionar el JsonSerializer.Deserialize Cómo lo puedo solucionar?

Gracias de antemano :)

cahinostroza commented 4 months ago

Hola @camibennett

Probablemente se rompió algo porque tenias algo como esto:

var unitDtos = JsonSerializer.Deserialize<List<UnitDto>>(jsonString);

Y quieres hacer algo del estilo:

var unitDtos = JsonSerializer.Deserialize<UnitDtoCollection>(jsonString);

Existe una forma de poder utilizar tu propia clase con JsonSerializer.Deserialize, pero tendrías que ponerte a ver la documentación del método, para ver cual es la interfaz que espera el método y luego hacer que tu clase UnitDtoCollection implemente dicha interfaz.

Otra forma de evitarte ese problema es hacer algo de este estilo:

var unitDtos = JsonSerializer.Deserialize<UnitDto[]>(jsonString);

Dado que también funciona con arrays.

Igualmente puedes seguir utilizando JsonSerializer.Deserialize<List<UnitDto>>, siempre y cuando esa lista que retorne el método esté dentro de una clase que la encapsule.

cahinostroza commented 4 months ago

Si no era ese tu problema, necesitamos más detalles para ayudarte

camibennett commented 4 months ago

Si! Ese es mi problema. Si uso array no es necesario encapsularlo?