0
"GetInstance"(最後の行)を呼び出すと、私はstackoverflow例外を取得し続けます。すべて、はい私のすべてのタイプのITrackerを実装します。 MultiTrackerには、単一のパラメータを持つコンストラクタがあります。これはITrackerの配列です。Structuremap Stackoverflow例外
Structure Mapは、ITrackerのタイプを要求するときにMultiTrackerが必要とするデフォルトクラスであるということを無視しているようです。
私はそれを動作させることができません。何かご意見は?
Container = new Container(x =>
{
//Multitracker takes ITracker[] in its constructor
x.ForRequestedType<MultiTracker>().TheDefault.Is.OfConcreteType<MultiTracker>().TheArrayOf<ITracker>().Contains(z =>
{
z.OfConcreteType<ConcreteType1>(); //ConcreteType1 : ITracker
z.OfConcreteType<ConcreteType2>(); //ConcreteType2 : ITracker
});
x.ForRequestedType<ITracker>().TheDefault.Is.OfConcreteType<MultiTracker>();
});
//Run a test - this explodes
Container.GetInstance<ITracker>();
.....私はそれをこのように行うかどうかわからないが、それは動作しますあなたはそのコードを単純化していませんか?何が起こるかを正確に見ることができるように、ステップバイステップでさらに進めてください。 –
そこに行くと、それは私が作ることができるほど簡単です。 –
あなたはどの言語を使用していますか? 「ioc」タグとは何ですか?ウィキペディアで見つけられる唯一の「ioc」は国際オリンピック委員会です。 – lothar