В настоящее время я только начинаю внедрять внедрение зависимостей, чтобы начать тестирование своего кода и много раз сталкивался с проблемой, которую не могу понять.
Мой текущий сценарий:
У меня есть один класс (foo.cs), который активен все время, пока работает служба Windows. Он отвечает за опрос базы данных на наличие новых сообщений, затем отправляет их и обновляет базу данных, чтобы отразить успешность отправки.
Моя проблема в том, что foo.cs имеет зависимость для доступа к данным (Message Repository - контекст данных linq-to-sql), поэтому он внедряется через конструктор и его жизненный цикл совпадает с foo. Везде, где я читаю, говорится, что время жизни контекста данных должно быть одной единицей работы. Таким образом, мне нужно вводить фактический тип, который я хочу использовать, и создавать его каждый раз, когда я хочу выполнить одну единицу работы в foo, а не передавать уже созданный репозиторий, который остается в живых в течение всей продолжительности службы.