Можно ли получить ссылку на экземпляр Singleton WCF ServiceHost до того, как поступит первый запрос клиента WCF? - PullRequest
4 голосов
/ 09 марта 2010

Я пытаюсь получить доступ к экземпляру синглтона, созданному моей службой WCF, но .SingletonInstance кажется нулевым, даже после вызова .Open на ServiceHost.

Есть ли способ заставить ServiceHost создать экземпляр до того, как поступит первый запрос клиента WCF (который предположительно автоматически порождает экземпляр singleton)?

Ответы [ 4 ]

10 голосов
/ 16 августа 2011

Я знаю, что этот вопрос немного устарел, но я сталкиваюсь с подобной проблемой и думаю, что нашел решение. Существует версия конструктора ServiceHost, которая принимает ссылку на экземпляр, а не на тип: http://msdn.microsoft.com/en-us/library/ms585487.aspx#Y342

Таким образом, вы можете сначала создать экземпляр, а затем передать его конструктору ServiceHost. Я еще не пробовал это, но похоже, что это должно сработать. Обязательно прочитайте замечания о выпуске экземпляра. когда вы используете этот конструктор.

2 голосов
/ 10 марта 2010

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

А если серьезно, попробуйте обойти это. Что вам нужно для этого вы не можете сделать в конструкторе реализующего класса?

0 голосов
/ 13 февраля 2012

Вы можете использовать конструктор вашего класса и сохранить объект экземпляра при его создании с помощью wcf servicehost

0 голосов
/ 10 марта 2010

.... вы можете делать сумасшедшие вещи с помощью пользовательского IInstanceContextProvider ... хотя это не стоит того ...

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