2017-04-11 4 views
1

私はUnityからStructureMapに移行しています。私はUnityのInterceptionBehaviorを使いました。StructureMap DynamicProxyInterceptorを使用している場合、IInterceptionBehaviorのインスタンスをコンテナからどのように解決しますか?

StructureMap .InterceptWithDynamicProxyInterceptorを使用するように切り替えることはできますが、インターセプタには依存関係があり、StructureMapを使用してインターセプタを構成する方法を理解できません。

var container = new Container(x => 
     { 
      x.For<IMathService>().Use<MathService>() 
       .InterceptWith(new DynamicProxyInterceptor<IMathService>(new IInterceptionBehavior[] 
       { 
        // I WANT TO COMPOSE THESE INTERCEPTORS 
        new NegatingInterceptor(), 
        new CachingInterceptor() 
       })); 
     }); 

現時点では私はそれが解決策になるかもしれないと思うことができる唯一のことは、静的なIoCのクラスから私のいるIContainerを公開し、私の迎撃に手動で私の依存関係を解決することです。

最終的に私のダイナミックプロキシをデコレータに置き換えることになるでしょうが、私はまだその段階にはありません。できるだけ早く起動して再実行したいので、追加の変更を開始する前に他の変更がすべて成功したことを証明できます。

答えて

1

さて、私は馬鹿だ、あなただけのDynamicProxyInterceptorコンストラクタ

var container = new Container(x => 
    { 
     x.For<IMathService>().Use<MathService>() 
      .InterceptWith(new DynamicProxyInterceptor<IMathService>(
      new Type[] 
      { 
       // I WANT TO COMPOSE THESE INTERCEPTORS 
       typeof(NegatingInterceptor), 
       typeof(CachingInterceptor) 
      })); 
    }); 
に代わりインスタンスの種類の配列を渡します
関連する問題