2010-06-08 4 views
1

У меня была эта огромная идея ... но я боюсь, что, может быть, это на самом деле плохая идея ....Единство и веб-сервис

мы используем единство для инъекций зависимостей.

Я делаю интерфейсы из моих веб-сервисов с использованием частичных классов с целью насмешливыми и веб-сервисов ....

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

Как вы думаете? Там где-то слишком много? Утечка памяти? Это плохая идея?

+0

Можете ли вы уточнить? Вы просто определяете сопоставление типов для своего веб-сервиса в единстве или думаете ли вы о регистрации экземпляра веб-службы в единстве? Мой ответ будет зависеть от того, какой путь вы принимаете .... –

+0

Я хочу сделать то и другое ... сдача экземпляра кажется, что это самый чреватый риском, хотя .... – zachary

ответ

1

Помните: не используйте контейнер DI для поиска услуг - это Service Locator anti-pattern. Вместо этого используйте Инъекция конструктора, чтобы получить свои зависимости от ваших потребителей.

Вы также можете сделать это с помощью веб-служб - по крайней мере, с WCF можно выполнить use Constructor Injection for the service.

Это означает, что вы можете ввести все необходимые зависимости в свой веб-сервис и позволить Unity разрешить им все для вас. Это был бы правильный подход. Это совсем неплохая идея.

Чтобы предотвратить утечку памяти, вы должны помнить . Выпуск каждого разрешенного экземпляра после использования. Это, однако, тривиально (одна из включенных здесь ссылок показывает, как это сделать).

+0

Но как добиться этого в WebService ? – Dozer

1

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

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