Я столкнулся с проблемой, связанной с ошибкой ссылки на циклическую зависимость в основном веб-приложении .NET. Хотя я думаю, что понимаю проблему, я не могу придумать способ ее решения, я искал вокруг и, похоже, не нашел никого с такой же проблемой.
Вот логическая схема, которую я пытаюсь достичь: 1. Общий репозиторий, обрабатывающий операции db CRUD. 2. В этом репозитории есть служба, которая выполняет определенную задачу в зависимости от типа выполняемого действия с базой данных.
Пример 1 В пользовательскую таблицу вставляется новая запись, есть задача, которая отправляет пользователю приветственное письмо.
Пример 2 Лид вставлен в базу данных, есть задача, которая создает последующую задачу для системного администратора.
Причина, по которой все это обрабатывается таким универсальным способом, заключается в том, что я хочу предоставить администраторам приложений интерфейс для создания / обновления этих триггерных задач, поэтому в примере 1 я не просто жестко кодирую электронное письмо пользователю.
Я использую DI для решения различных услуг, и у меня возникла следующая проблема:
EntityFrameworkRepository реализует IRepository
ITriggerService вводится в EntityFrameworkRepository, ошибка запускается, потому что я затем пытаюсь внедрить и разрешить IRepository в триггерной службе, даже без этой инъекции templateService также пытается разрешить IRepository в своем собственном конструкторе. На данный момент у меня только закодированы ITempalteService и IEmailerService, но будет много других «служб триггерных действий», которые также будут использоваться во всем коде и других службах, поэтому я действительно не хочу менять их дизайн.
Я признаю, что это плохой дизайн, основываясь на всех других людях, которые задавали похожие вопросы, и на полученных ими ответах, но я не могу понять, как решить / спроектировать правильное решение для достижения желаемой цели.
Все предложения приветствуются!