Средство интеграции WCF и автономные сервисы
Я сам хостинг нескольких служб, где я делаю это для регистрации службы:
host = new ServiceHost(typeof(MyService));
host.Open();
За кулисами wcf создает мой сервис через конструктор по умолчанию.
Можно ли использовать средство интеграции WCF Касл Виндзор, чтобы заставить WCF вызывать Виндзор для создания сервиса, когда я сам хостинг?
Кажется, что пример показывает размещенные службы IIS, где 1-я строка файла MyService.svc выглядит следующим образом:
<%@ServiceHost language=c# Debug="true"
Service="Microsoft.ServiceModel.Samples.CalculatorService"
Factory=WindsorServiceHostFactory%>
где предположительно фабрика используется wcf для создания экземпляра службы.
2 ответа
Это может быть полезно:
Как разместить службу WCF, которая использует Castle Windsor в службе Windows
Но если это не так, тогда я предлагаю вам попробовать спросить на форуме пользователя замка.
С 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;
}