5

新しい WCF エンドポイントを登録している時点で、URI が何かわかりません...

public void Install(IWindsorContainer container, IConfigurationStore store)
{
   var defaultClientModel = new DefaultClientModel
   {
     Endpoint = WcfEndpoint
       .ForContract<IMyService>()
       .BoundTo(new WSHttpBinding(SecurityMode.None))
       .At(  URI??? )
   };

   container.Register(WcfClient.ForChannels(defaultClientModel));
}

IMyService インスタンスが要求されたとき (これがわかっているとき) にコンテナーから URI を取得する方法はありますか?

使用できるファクトリメソッド/動的パラメータのようなものはありますか?

4

2 に答える 2

4

Windsor 3.1 では、次の構文を使用してこれを行うことができるようです。

public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
    Component.For<IMyService>()
    .AsWcfClient()
    .DependsOn((k, d) =>
        d["EndPoint"] = WcfEndpoint.BoundTo(new WSHttpBinding(SecurityMode.None)).At( URI??? )));
}

Windsor は、IMyService が最初に解決された時点で、指定された動的解決デリゲートを使用してエンドポイントを解決しようとします。

于 2012-10-11T22:28:38.777 に答える
0

UsingFactoryMethodを使用してサービスを作成したいと思います。

  • カスタム UriResolver をコンテナに登録します
  • 上記の UriResolver のインスタンスをファクトリ メソッドで解決します (サービスを解決する必要があるまで呼び出されません)。
  • ファクトリ メソッドでサービスを作成する
  • ウィンザー城 doco を検索して、たくさん誓ってください。

次のリンクが役立つ場合があります

ravendb、Castle IoC、Wcf 機能 - ドキュメント セッション ライフスタイル

Castle Windsor WcfFacility を使用してクライアント エンドポイントを作成する

http://www.mail-archive.com/castle-project-users@googlegroups.com/msg09012.html (これには、必要なものと同様のコードがあるようです)

https://stackoverflow.com/questions/10250077/problems-using-castle-windsor-factory-method

Castle Windsor の UsingFactoryMethod にパラメーターを渡す

Castle Windsor: UsingFactoryMethod が奇妙なエラーでインスタンス化できない

http://docs.castleproject.org/Default.aspx?Page=Typed-Factory-Facility-interface-based-factories&NS=Windsor&AspxAutoDetectCookieSupport=1

于 2012-10-10T06:22:34.970 に答える