|
Autofac. Вопрос по конфигурированию.
|
|||
---|---|---|---|
#18+
Привет. Застрял. Подскажите плиз. Есть у меня 3 сущности: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Как мне законфигурировать следующую ситуацию: Мне нужно создать First. Но чтобы ISecond я создал сам по следующему условию: IThird должен быть создан самим Autofac согласно правилам его конфигурирования (меня они не волнуют. Т.е. мне просто нужно чтобы зависимость была создана сама как-то там), а IOther должен быть передан мной. Как такое сделать ? Мне кажется должно быть что-то типа: Код: c# 1. 2.
но у ContainerBuilder нету метода Resolve !! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:10 |
|
Autofac. Вопрос по конфигурированию.
|
|||
---|---|---|---|
#18+
В принципе, данных подход разрушает принцип DI Может сделать фабрику для second и избавиться от хардкода для second в конфигураторе AF? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:17 |
|
Autofac. Вопрос по конфигурированию.
|
|||
---|---|---|---|
#18+
Shocker.Pro, С чего это нарушение DI ? DI не требует чтобы ВСЕ резолвилось автоматически. Бывают ситуации, когда мне необходимо вмешаться в процесс. Для чего и существует метод WithParameter. Он же не зря сделан. Мне вот и нужно передать кастомный (созданный с заданными мною парметрами) тип. Но я столкнулся с тем, что сам тип создается с использованием какого-то другого типа ! Если бы там была строка. Все было бы просто И РАБОТАЛО БЫ: Код: c# 1. 2.
тут нету проблемы. Все работает. Но у меня, к сожалению, не просто строка. А другой сложный тип, который и нужно, на самом то деле, законфигурировать. Как это сделать ? есть идеи ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:36 |
|
Autofac. Вопрос по конфигурированию.
|
|||
---|---|---|---|
#18+
Shocker.ProМожет сделать фабрику для second и избавиться от хардкода для second в конфигураторе AF? Я идею не понял. Но если это поможет решить мою проблему, то я только за. Можете показать код? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:38 |
|
Autofac. Вопрос по конфигурированию.
|
|||
---|---|---|---|
#18+
ProBiotekShocker.ProМожет сделать фабрику для second и избавиться от хардкода для second в конфигураторе AF? Я идею не понял. Но если это поможет решить мою проблему, то я только за. Можете показать код?Нужно сделать класс ISecondFactory, который умеет по запросу генерировать экземпляр Second, сам при этом имеет зависимость от IThird Соответственно IFirst должен иметь зависимость не от ISecond, а от ISecondFactory, а в конструкторе получить из этой фабрики экземпляр Second. Соответственно, зависимость от ISecond в AF не прописывается ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:58 |
|
Autofac. Вопрос по конфигурированию.
|
|||
---|---|---|---|
#18+
нашел ответ, в общем. все просто, как оказалось: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Т.е. оказвыается у WithParameter есть перегруженный метод принимающий контейнер. Через который и можно резолвить ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 15:25 |
|
|
start [/forum/topic.php?fid=20&fpage=82&tid=1401438]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 374ms |
total: | 497ms |
0 / 0 |