でコンストラクタ・インジェクションを解決します。NInject:私はこれらのインタフェースとクラスを作成した二つのパラメータ
interface IInterpreter.
interface IViz.
interface IVizDescriptor.
、
class IntOne : IInterpreter.
と、
class VizDescOne : IVizDescriptor {
VizDescOne(string title, Type type, SchemaType schemaType, string desc)
{ }
}
と、
class VizOne : IViz {
public VizOne (IntOne, IVizDescriptor)
{
}
}
VizOne
の場合は最初のパラメータコンストラクタにIntOne
を注入するためにIInterpreter
とIntOne
の間にバインドを作成できることが分かりました。
問題は、VizDescOne
の適切なバインディングを作成する方法がないことです。 VizDescOne
のコンストラクタパラメータがそれぞれの状況にあまり依存していないため、バインディングを作成できません。
manually
を提供し、VizOne (IntOne, IVizDescriptor)
コンストラクタを解決する方法はありますか?
しかし、IVizDescriptor
あなたは多くのオプションを持っている
'title'、' type'、 'desc'のようなパラメータは実行時の値であると思います。アプリケーションの存続期間中一定ではありません。 [ランタイムデータをコンポーネントに注入するためにコンテナを乱用しないでください](https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=99)。 – Steven