Я только вкатываюсь в .net и пытаюсь разобраться. Вот есть у меня большое приложение. И в нём создаётся некий объект, скажем, экзамен. У экзамена есть дата, и за три дня до этой даты надо выслать напоминание.
Значит, что я делаю? Я наследуюсь от IHostedService, там в StartAsync создаю new Timer, куда передаю DesiredTime - - DateTime.UtcNow. Ну и там метод собственно рассылки, это понятно. И всё это безобразие я во время создания экзамена регистрирую через AddHostedService.
А теперь собственно вопрос. Что делать при рестарте приложения? Мне надо как-то сохранить все мои чудесные сервисы с их параметрами в базу, потом их подгрузить, и заново зарегистрировать? Есть какая-то автоматизация для этого? Что вообще сохранять? Имя класса, а потом? И вообще, класс-то локальный, утилитарный, незачем его совершенно тащить наверх, даже само знание о нём...
Классы можно сериализовать в бинарный поток и записать как файл.
При необходимости - извлечь и десериализовать.
Если данных много - лучше хранить их в базе данных.