Инициализировать службу WCF перед запуском службы? - PullRequest
0 голосов
/ 02 мая 2011

Я создал сборку, содержащую службы WCF, которые объявлены в файле app.config сборки и автоматически размещаются, когда я начинаю отлаживать клиентское приложение.Это все работает.

Проблема в том, что мне нужно выполнить некоторые инициализации до размещения сервисов, особенно мне нужно собрать список известных типов, которые будут использоваться с [ServiceKnownType ("Атрибут RegisterKnownTypes ", typeof (ServiceKnownTypesHelper))] (я использую MEF для сбора типов знаний из моих сборок, поэтому я не могу просто поместить их в файл конфигурации, поскольку они известны во время выполнения, а не раньше).

Есть ли способ инициализировать что-то до размещения служб WCF?Я могу инициализировать вещи в конструкторе классов обслуживания, но уже слишком поздно регистрировать известные типы.

1 Ответ

1 голос
/ 02 мая 2011

Обычно это инкапсулируется в производное ServiceHost, где вы можете инициализировать все, что угодно, прежде чем размещать сервис, переопределив метод OnOpening.Вы также можете выполнить некоторую инициализацию без реализации нового ServiceHost, обработав событие Opening по умолчанию ServiceHost.

Редактировать:

Поскольку вы уже нашли сгенерированный файл .configДля вашей службы библиотека используется только средством тестирования WcfSvcHost.exe.Само приложение должно иметь свою собственную конфигурацию в главном app.config / web.config, чтобы вы могли изменять конфигурацию библиотеки для целей отладки по мере необходимости.Нет другого способа повлиять на инициализацию ServiceHost в WcfSvcHost.exe.

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