1

Прежде всего, извините, может быть, дублированный вопрос, но я новый и в то же время взволнованный проектом Castle Windsor. Я переработал службу веб-API для использования преимуществ DI и UnitTesting. Структура проекта: API (Web Api)>WcfServiceWrapper (проект библиотеки) >> (IAuthorizationService, IBussinesProcessService, IClientService ... (Список услуг)). Все ссылки на службы имеют конфигурацию в файле конфигурации.Как зарегистрировать все реализации WCF в Castle Windsor

В WcfServiceWrapper я работал с экс .:

using(IAuthorizationService serviceClient = new AuthorizationServiceClient()){ 
} 

Теперь с замком Я хочу, чтобы все Ссылочные услуги (IAuthorizationService, IBussinesProcessService, IClientService ...) использовать их реализации (AuthorizationServiceClient, BussinesProcessServiceClient, ClientServiceClient ...)

конфигурации Замок находится в проекте API. Когда я делаю это:

container.Register(Classes.FromAssemblyNamed("WcfServiceWrapper").Pick().WithServiceAllInterfaces()); 

во время выполнения он говорит мне, что ComponentActivator: не удалось создать экземпляр AuthorizationServiceClient.

Я думал, что это невозможно прочитать привязку Конфигурации из файла конфигурации, или я не знаю.

Можете ли вы рассказать мне, как я могу зарегистрировать эти компоненты?

+0

У вас есть более подробное сообщение об ошибке? Имеет ли какая-либо из ваших зарегистрированных реализаций какой-либо интерфейс в своем конструкторе, который не имеет реализации? – Andre

ответ

0

После более подробного поиска я обнаружил, что это была общая проблема с привязками. Мне пришлось переместить всю конфигурацию привязки от WcfServiceWrappers app.config к API web.config, поэтому теперь все клиенты службы могут видеть свою конфигурацию привязки, которая необходима в конструкторе.