He estado viendo la presentación de Jason Taylor sobre arquitectura limpia con ASP.NET Core (tiempo 35:52)
https://www.youtube.com/watch?v=dK4Yb6-LxAk&t=2134s&ab_channel=GOTOConferencias
Y creó un DateTimeService que devuelve DateTime.Now y se registró a través del método AddTransient , sugiere usarlo en lugar de usar DateTime.Now directamente porque en este caso no depende del reloj de la máquina.
No me queda claro por qué no tiene una dependencia en este caso, ¿podría explicar cómo funciona?
Si alguna vez fuera a implementar una forma diferente de obtener la hora actual, todo lo que tendría que hacer es crear una nueva implementación para su IDateTimeService en lugar de cambiar cada instancia de DateTime.Now en su proyecto.
Un ejemplo sería crear un servicio que obtenga la hora con una solicitud externa o crear fácilmente un simulacro para pruebas unitarias para que pueda afirmar correctamente los resultados que dependen de la fecha y la hora.