Использование пользовательского ServiceHostFactory в проекте библиотеки служб WCF - PullRequest
4 голосов
/ 04 мая 2010

Я программирую службу WCF, которая сильно зависит от Inversion of Control. Я хотел бы загрузить / инициализировать мой IoC-контейнер внутри пользовательского ServiceHostFactory. Я прочитал несколько примеров доступных хуков, но ни один из них мне не подходит.

Этот подход - это тот, который я предпочел бы использовать (custom IServiceBehavior, IInstanceProvider, ServiceHost и ServiceHostFactory), но последний шаг - это сигнал службе использовать мой собственный ServiceHostFactory внутри моего serivce *. SVC-файл. У меня нет ни одного из них, так как тип проекта - это библиотека служб WCF, а не приложение службы WCF. Можно ли как-то сказать WCF использовать мой ServiceHostFactory в файле App.config?

Ответы [ 2 ]

7 голосов
/ 24 января 2011

Сиддан, рад видеть, что вы нашли разрешение (хотя и не идеальное). У меня был тот же вопрос, что и у вас, и я наконец решил использовать IIS для размещения службы и подключил свои собственные классы Ioc (которые находятся в моей библиотеке служб WCF), используя serviceHostingEnvironment в моем файле web.config. Что-то вроде этого:

<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
    <serviceActivations>
        <add relativeAddress="./Service1.svc" service="WcfServiceLibrary1.Service1"
          factory="WcfServiceLibrary1.IocServiceHostFactory, WcfServiceLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </serviceActivations>
</serviceHostingEnvironment>

"./ Service1.svc" - это мое местоположение службы без файлов, где WcfServiceLibrary1.Service1 - конкретный имп. Я наткнулся на несколько камней преткновения, но в конце концов сумел инкапсулировать Ioc из библиотеки служб WCF.

Это сообщение в блоге было очень полезным и содержит несколько полезных советов.

3 голосов
/ 04 мая 2010

Поскольку я не вижу ответа, я выложу то, что нашел, что не очень обнадеживает.

Все ссылки на ServiceHostFactory указывают на файл svc и атрибут Factory, а это не то, что вы ищете.

Этот поток в MSDN даже говорит о том, что невозможно сделать то, что вы пытаетесь достичь.

К сожалению ...

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