Я использую Ninject, и с помощью Конструктора Injection:Constructor архитектура приложения Инъекции неправильно - Ninject
Примера моей проблемы
У меня есть два интерфейса с их реализацией.
1. IUsersProvider
2. ICompaniesProvider
Мне нужно использовать функции из UsersProvider
в CompaniesProvider
И от CompaniesProvider
в UsersProvider
Так я создал Конструкторы в обоих классах:
public class UsersProvider : IUsersProvider
{
private readonly ICompaniesProvider _companiesProvider;
public UsersProvider(ICompaniesProvider companiesProvider)
{
_companiesProvider = companiesProvider;
}
}
И
public class CompaniesProvider : ICompaniesProvider
{
private readonly IUsersProvider _usersProvider;
public UsersProvider(IUsersProvider usersProvider)
{
_usersProvider = usersProvider;
}
}
Теперь этот код компилируется нормально, но с точки зрения архитектуры это неверно (это похоже на круговую ссылку). Ninject генерирует исключение, когда я запускаю этот код:
Каков наилучший способ обработки сценария использования функций из каждого класса в другом?
Вы можете использовать функцию впрыска для 1 класса, чтобы решить эту проблему. – Chino