Я пытаюсь создать оболочку интерфейса для своего контейнера IOC, чтобы не зависеть от конкретного контейнера. Моя проблема в том, что некоторые из классов обслуживания, которые у меня есть, имеют идентификатор компании, который является строкой. Я хочу создать общие методы интерфейса, например
T Resolve<T>()
где T - служебный интерфейс.
Прямо сейчас я использую StructureMap за кулисами и знаю, принимает ли конкретный конструктор идентификатор компании, поэтому я сделаю что-то вроде этого:
ObjectFactory.With("companyid").EqualTo("someCompanyID").GetInstance<ICompanyService>();
Я оборачиваю такой вызов в метод интерфейса: ICompanyService GetCompanyService(string companyID)
В моем нынешнем виде приложение должно инициализировать конфигурацию StructureMaps, а конкретный класс, который передает обратно службы, должен много знать о конструкторах. Я бы хотел, чтобы этого не происходило и чтобы обертка была универсальной. Есть ли хороший способ без добавления companyID
к каждому методу интерфейса?