2009-02-24 3 views
1

Я пытаюсь использовать StructureMap и имеет по существу 3 уровня абстракции. У меня есть служба репозитория и интерфейс базы данных. Таким образом, IService зависит от IRepo, а IRepo зависит от базы данных. Моя проблема заключается в том, что мой конкретный тип IDatabase принимает информацию о соединении db. Я собираюсь создать их на лету, пытаясь использовать ObjectFactory.Configure().StructureMap вопрос инжекции

Таким образом, у меня есть пользователь, и пользователь связан с компанией, и я просматриваю информацию о соединении с компанией, и я хочу создать конкретный конкретный тип базы данных на основе этой информации. У меня есть конкретный тип, сконфигурированный в моем стартовом коде. Я только хочу использовать объект IService извне ... поэтому я хочу создать именованный объект IService с именем компании. У вас проблемы с попыткой создания этих типов «на лету». ЛЮБАЯ информация была бы полезной ...

Я в основном хочу иметь возможность создать именованный экземпляр и либо установить свойства, либо передать определенные аргументы конструктору во время выполнения, не зная конкретного типа. У меня есть конкретная настройка типа в файле конфигурации. Я попытался использовать ObjectFactory.GetInstance и попытался установить свойства внутри метода Configure, но получил исключение StackOverflow ... HOW IRONIC

ответ

0

Нашел ответ с направлением от Джереми Миллера (автор StructureMap). Вот где он указал мне на:

http://structuremap.sourceforge.net/RetrievingServices.htm#section5

вот пример того, что я использовал:

IDatabaseRepository repo = 
       ObjectFactory.With("server").EqualTo("servername"). 
       With("database").EqualTo("dbName"). 
       With("user").EqualTo("userName"). 
       With("password").EqualTo("password"). 
       GetInstance<IDatabaseRepository>(); 
0

Это не похоже ObjectFactory StructureMap поддерживает инъекционный именованные экземпляры

 Смежные вопросы

  • Нет связанных вопросов^_^