У меня есть C# веб-апи проект, архитектура которого показана на следующей схеме (Projecta) Круговые ссылки на вопросы в C# WebAPI проекты
В приведенной выше диаграмме контроллеров в проекте A пользоваться услугами проекта А для того, для выполнения фактического задания, а Сервисы используют репозиторий для чтения и записи в базе данных. Все они используют инъекцию Autofac Dependency Injection. примеры: Конструктор контроллера, который использует различные услуги
public DKMenuController(ITokenService tokenService, IUserService userservice, IDKMenuService dkMenuService)
{
_tokenService = tokenService;
_dkMenuService = dkMenuService;
_userservice = userservice;
}
конструктору службы, которая использует основной репозиторий для связи с БД
public DKMenuService(IRepository repository)
{
this._repository = repository;
}
Различные услуги регистрируются при запуске приложения следующим
this.RegisterType<Repository>().As<IRepository>().InstancePerRequest();
this.RegisterType<DKMenuService>().As<IDKMenuService>().InstancePerRequest();
Теперь я хочу добавить еще один проект (названный в exa mple ProjectB), который является просто библиотекой классов и вызывается из службы ProjectA, что-то сделает, а затем будет использовать шаблон репозитория ProjectA и сохранить данные в БД. Проблема в том, что эта конструкция приводит к циклическим ссылкам, а 2 проекта не будут компилироваться. Существует аналогичный вопрос здесь How to solve circular reference? , но ответ не очень ясен, правильно ли он. Любые идеи?
Там нет циклической зависимости в диаграмме. Можете ли вы прояснить, где круговая зависимость? – Enigmativity
@ Энигматичность - посмотрите на заголовки, 2 _projects_ (столбцы) имеют круг. –
@HenkHolterman - Какие заголовки? На диаграмме нет круга. Это ориентированный ациклический граф. – Enigmativity