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