Самостоятельный хост wcf servicehost объекта срок службы жизни

StackOverflow https://stackoverflow.com/questions/7807416

Вопрос

Чтобы начать свой сервис WCF, я использую следующее:

selfHost = new ServiceHost(typeof(MyServiceClass));
selfHost.Open();

В какой -то момент это создаст экземпляр MyServiceClass. Анкет Создает ли это один экземпляр или экземпляр для запроса?

Это было полезно?

Решение

Если вы хотите ограничить его одним экземпляром, вы можете создать создание класса услуг снаружи и перенести экземпляр в ServiceHost:

var myservice = new MyServiceClass();
selfHost = new ServiceHost(typeof(MyServiceClass), myservice); // forces singleton pattern
selfHost.Open();

Другие советы

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

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

Он создаст экземпляр для запроса. Если вы хотите один экземпляр, вы можете использовать статический класс. Статический класс существует для жизни применения. Они не восстанавливаются каждый раз, когда есть звонок или новое соединение WCF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top