2011-09-05 14 views
0

私が持っている:ウィンザー依存性の問題

public class ServiceA : IServiceA 
{ 
    public ServiceA(IServiceB serv){...} 
} 

public class ServiceB : IServiceB 
{ 
} 

シングルトンとして登録両方。今

私は:私はIServiceAも解決されていることを確認したいと思います

..Container.Resolve<IServiceB>() 

。それはどのようにそれを行うのか分からないが、これらのサービスの間に何らかの依存を作ることになる。

EDIT:

var B = ..Container.Resolve<IServiceB>(); 
//Make sure IServiceA has been resolved 
B.SomeFunction(); 

B.SomeFunction()Event Based

NOTEいくつかのものをすることの理由のために解決するIServiceAを必要とします:私はIServiceBを解決いけない、私は何を期待

のようなものを行うことですコード内ではまっすぐですが、別のクラスコンストラクタを使用します。

+0

なぜ動作するのか、動作しないために何が壊れているのかについて、より詳細な情報を提供します。 'IServiceB'は' IServiceA'にどのような依存関係を持っていますか?あなたの現在の署名は、(その方向で)依存関係がないことを示唆しています。これは人々が代替案を提案するのに役立つかもしれない。 –

答えて

1

IServiceBはIServiceAに依存しませんが、逆の場合もあります。 IServiceAを求める場合、IServiceBを解決します。

+0

残念ながら、私はそれらを書いた方法は私がそれらを必要とする方法であるので、コンストラクタの解決オプションを変更することはできません – ub1k

+0

それはあなたが何を求めているのかは分かりません。 IServiceAとIServiceBの両方を同時に解決する必要がある場合は、IServiceAで.Resolveを呼び出すか、コードの依存関係を修正してください。 – Joe