Autofac: один экземпляр объекта с мультитенантной зависимостью - PullRequest
0 голосов
/ 28 марта 2011

Даны два класса A и B, где B зависит от A (вводится конструктор);B зарегистрирован как SingleInstance в базовом контейнере, и он построен.A зарегистрирован в MultiTenantContainer как SingleInstance, в зависимости от tenantId.

Вопрос 1: признает ли

Resolve<B>()

, что B также должен различаться для tenantId?

Вопрос 2: то же самое, но A зарегистрирован как ограниченный временем жизни в мультиконтейнер и B зависит от

Func<Owned<A>>.

Обновление: закрытие!

Это был случай "того, чего я действительно хотел было... »из-за непонимания моей семантики семантики;в частности, мне нужны были экземпляры, которые были собраны / совместно использованы для всех разрешений в пределах срока действия арендатора , которых не было.Получил некоторые рекомендации, представил патч № 318, он был вытащен в багажник на ревизии 752, и мы готовы к работе!Теперь вопрос, приведенный выше, будет выглядеть следующим образом:

Учитывая два класса A и B, где B зависит от A (вводится конструктор);B зарегистрирован как InstancePerTenant в базовом контейнере, и он встроен.A зарегистрирован в MultiTenantContainer как InstancePerTenant , в зависимости от tenantId ...

, и теперь ответ на оба вопроса "да".

Спасибо Тревису и Нику за вашу помощь и поддержку этого замечательного инструмента.

1 Ответ

0 голосов
/ 28 марта 2011

Если я правильно понимаю ваш пример, ответ «нет» в обоих случаях.

Autofac защищает от любого долгоживущего экземпляра, когда-либо получающего ссылку на более короткий экземпляр.

Хотя это может означать переосмысление дизайна здесь и там, по моему опыту, это ведет к более предсказуемому поведению.

Надеюсь, это поможет!

Ник

(Кстати, если вам нужен какой-то вклад в какой-либо конкретный сценарий, вы можете подумать о создании другого вопроса с описанными конкретными компонентами.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...