3

私はウィンザーから始めたばかりなので、優しくしてください:)ウィンザーコンテナ内に配置されたコンポーネントをオーバーライド/置換できるようにしたいシナリオがあります。読む ...

私の製品コードでは、基本クラスを実装するコンポーネントを登録し、コンテナーを使用して実装者を解決できるようにしたいと考えています。これまでのところ、

container.Register(Component.For<LoggerBase>().ImplementedBy<DebugLogger>());

container.Resolve<LoggerBase>();

私のテストでは、スタブ/モック実装を追加して「DebugLogger」実装をオーバーライドし、prod コードが呼び出したときにcontainer.Resolve<LoggerBase>();オーバーライドされた実装を取得したいと考えています。

どんなポインタでも大歓迎です!

4

1 に答える 1

4

その道をたどる代わりに、シナリオごとに異なるコンテナー インスタンスを使用する必要があります。各インスタンスは異なる構成にすることができます。それが DI コンテナの要点です。

ただし、一般に、DI コンテナーは単体テストには使用しないでください

于 2009-11-06T13:29:58.697 に答える