1

まず最初に、重複した質問を申し訳ありませんが、私は新しいと同時にCastle Windsorプロジェクトについて興奮しています。 DIとUnitTestingの利点を利用するためにWeb APIサービスをリファクタリングしました。 プロジェクト構造:API(Web API)>WcfServiceWrapper(ライブラリプロジェクト) >>(IAuthorizationService, IBussinesProcessService, IClientService ...(サービス参照))。すべてのサービス参照は、設定ファイルに設定されています。Castle WindsorですべてのWCFサービスの実装を登録するには

私が元で働いていた:

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

WcfServiceWrapperで

参照されるすべてのサービス(IAuthorizationService, IBussinesProcessService, IClientService ...)はその実装(AuthorizationServiceClient, BussinesProcessServiceClient, ClientServiceClient ...

城の構成を使用するために今の城と私が欲しいのAPIプロジェクトです。私はこれを行うとき:AuthorizationServiceClientをインスタンス化できませんでした:実行時に

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

をそれがComponentActivatorことを私に伝えます。

設定ファイルから設定を読み込むことができないと思っていましたが、わかりません。

どうすればこのコンポーネントを登録できますか?

+0

詳細なエラーメッセージがありますか?あなたの登録された実装のどれも、実装を持たないコンストラクタのインタフェースを持っていますか? – Andre

答えて

0

さらに詳細な検索を行ったところ、バインディングによくある問題であることがわかりました。 WcfServiceWrappers app.configからAPI web.configにすべてのバインディング設定を移動しなければならなかったので、すべてのサービスクライアントはコンストラクタで必要なバインディング設定を確認できるようになりました。

関連する問題