Я хотел бы создать контейнер, где он разрешит разрешение ISomeService, но не ISomeOtherService. Несмотря на то, что моя регистрация для ISomeService зависит от ISomeOtherService.Ограничение контейнера Windsor от разрешения объекта на основе
Это имеет смысл?
public interface ISomeService {}
public interface ISomeOtherService {}
public class SomeService : ISomeService
{
public SomeService(ISomeOtherService someOtherService) {}
}
public class SomeOtherService : ISomeOtherService {}
этот контейнер я хотел бы решить SomeService для ISomeService, но если бы я попытался решить ISomeOtherService или SomeOtherService он потерпит неудачу.
Это плохой дизайн?
Итак, небольшой контекст ... У меня есть ASP.Net MVC-контроллеры, которые будут разработаны различными разработчиками. Эти контроллеры ДОЛЖНЫ иметь доступ к службам приложений, таким как ISomeService, но не к их зависимостям. Я бы хотел, чтобы вам не пришлось пересматривать все эти службы, чтобы разработчики не нарушали дизайн архитектуры. Они должны иметь возможность получать ссылки на ISomeService, но ISomeOtherService - это репозиторий базы данных, и они никогда не должны иметь дело с ним напрямую, но ISomeService действительно нуждается в этой ссылке.
Я не против надеяться на середину разрешения (это приложение ASP.NET MVC, и у меня есть точка расширения уже для создания контроллера), поэтому я МОГУТ взглянуть на разрешаемый контроллер, посмотреть на его зависимостей и убедиться, что они находятся в белом списке, но я не знаю, как легко оценивать зависимости с Виндзором. Или, просто я должен сделать это сам, посмотрев на параметры конструктора?