Синглтоны в веб- или WCF-сервисах - PullRequest
1 голос
/ 25 июля 2010

Некоторое время я задаюсь вопросом, будет ли хорошей идеей хранить некоторые данные в одиночном коде при написании веб-службы (или WCF).Цель состоит в том, чтобы повторно использовать эту информацию в различных вызовах службы.Интересно, какова продолжительность жизни этих синглетонов, потому что, например, когда пул приложений перерабатывается, синглтон исчезает.Следующий вопрос - наличие синглтона.Действительно ли он доступен во всех вызовах, независимо от процессов или потоков, запущенных IIS?

Как вы думаете?

Спасибо, Rocko

1 Ответ

1 голос
/ 25 июля 2010

Время жизни синглтона равно или меньше (если оно загружено с отложенной загрузкой) времени жизни приложения. Когда пул приложений перезагружается, приложение останавливается, и операционная система освобождает память, использованную для хранения синглетонов.

Синглтон будет доступен во всех потоках приложения, но, поскольку он хранится в области памяти процесса, выполняющего это приложение, он не будет доступен другим процессам.

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

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

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