2

structuremap を使用して wcf クライアントを挿入したいのですが、このクライアントが構成からエンドポイントとバインディング構成を読み取るようにしたいと考えています。私は次のことを試しました:

For<IServiceClient>().LifecycleIs(new UniquePerRequestLifecycle()).Use<ServiceClient>().
            Ctor<string>("endpointConfigurationName").Is("WsHttpBinding_IService");

しかし、これはエラーになります:

StructureMap 例外コード: 205\nInstanceKey \"e50e036b-9d71-47de-8ac2-d53a641e9be8\" の要求されたインスタンス プロパティ \"remoteAddress\" がありません

remoteAddress を渡すと、期待どおりに動作します。

 For<IServiceClient>().LifecycleIs(new UniquePerRequestLifecycle()).Use<ServiceClient>()
           .Ctor<string>("endpointConfigurationName").Is("WsHttpBinding_IService")
           .Ctor<string>("remoteAddress").Is("https://myurl/Service.svc");

最初のコンストラクターのオーバーロードが構成からエンドポイント アドレスを読み取らない理由がわかりません。構成は次のようになります。

>

 <client>
      <endpoint address="https://myurl/Service.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService" contract="IService" name="WsHttpBinding_IService" />
 </client>
4

1 に答える 1