Средство интеграции WCF и автономные сервисы - PullRequest
3 голосов
/ 24 марта 2010

Я сам хостинг нескольких служб, где я делаю это для регистрации службы:

host = new ServiceHost(typeof(MyService));
host.Open();

За кулисами wcf создает мой сервис через конструктор по умолчанию.

Можно ли использовать средство интеграции WCF Касл Виндзор, чтобы заставить WCF вызывать Виндзор для создания службы, когда я сам хостинг?

В этом примере показаны службы, размещенные на IIS, где первая строка файла MyService.svc выглядит следующим образом:

<%@ServiceHost language=c# Debug="true" 
     Service="Microsoft.ServiceModel.Samples.CalculatorService" 
     Factory=WindsorServiceHostFactory%>

где предположительно фабрика используется wcf для создания экземпляра службы.

Ответы [ 2 ]

4 голосов
/ 25 марта 2010

Это может быть полезно:
Как разместить службу WCF, которая использует Castle Windsor в службе Windows

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

0 голосов
/ 06 октября 2014

С помощью Castle 3.0 способ сделать это выглядит следующим образом:

// setup IoC, including registering the WcfFacility from Castle.WcfIntegrationFacility
container.AddFacility<WcfFacility>();
// and all other registrations you need

И затем, при условии, что у вас есть необходимые данные в вашем app.config или все в порядке с настройками по умолчанию:

// T is an interface with a backing service implementation registered in your IoC
public static ServiceHostBase StartHostService<T>(string serviceUrl)
{
    var assemblyQualifiedName = typeof(T).AssemblyQualifiedName;
    var serviceHost = new DefaultServiceHostFactory()
        .CreateServiceHost(assemblyQualifiedName, new[] { new Uri(serviceUrl) });
    serviceHost.Open();

    return serviceHost;
}
...