Как использовать сервисный локатор в сервисе WCF - PullRequest
3 голосов
/ 21 июня 2011

Я использую сервисный локатор для хранения конкретных экземпляров классов, который используется в сервисе WCF. Вместо того, чтобы передавать ServiceLocator, я решил сделать его статичным, чтобы я мог получить к нему доступ из любого класса. Локатор службы заполняется при запуске службы WCF и, в зависимости от некоторых параметров, может заполняться различными конкретными реализациями.

Моя проблема заключается в том, что если сделать вызов службе WCF до завершения другого вызова, то (я думаю) ServiceLocator будет заполнен неправильными реализациями.

Есть ли способ сделать локатор службы доступным для классов и не использовать его повторно различными потоками или вызовами службы WCF?

1 Ответ

2 голосов
/ 21 июня 2011

Вы предоставляете немного подробностей о вашем сервисном локаторе и неверной реализации.Из того, что я прочитал, я понимаю, что это ваше.

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

Вы можете прочитать больше о локаторе службы anti pattern здесь: http://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspx

Вы не должны реализовывать свой локатор службы, потому что есть много проектов OSS, связанных с внедрением зависимостей, которые можно использовать и которыеработать правильно.

Вот правильная реализация внедрения зависимостей с использованием StructureMap со службами WCF: http://lostechies.com/jimmybogard/2008/07/30/integrating-structuremap-with-wcf/.

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