Исходя из этого вопроса, у меня теперь есть следующая структура:
Wolfie.Core - Содержит бизнес-логику и сущности, также содержит интерфейсы репозитория (например, IUserRepository) Классы, которые необходимоДоступ к хранилищу осуществляется с помощью конструктора внедрения.
Wolfie.Data - Ссылки на Wolfie.Core и имеет UserRepository, реализующий IUserRepository
Так что я доволен этим до сих пор.Core ничего не знает о реализации данных и, следовательно, ни от чего не зависит.
Камень преткновения, на который я попадаю, находится на моем веб-уровне.
Мой веб-проект ссылается на мой проект Core.Затем я могу создать новый класс Core, скажем, User, но мне нужно передать в него конкретную реализацию IUserRepository.Поэтому мне нужно сослаться на мой проект данных в моем веб-проекте, что кажется неправильным.Теперь это также выглядит так, как будто Web зависит от Data, а это не должно быть.
Итак, как я могу внедрить мой класс Core User в класс Data без прямой ссылки на Data?
Посмотритежду вашей помощи.