依存性注入にninjectを使用すると、結果がMVCで取得できる注入のようになりますか?具体的には、MVCのninjectアダプターを使用すると、Webコントローラーをコンストラクター・パラメーターとして宣言することができます。このパラメーターは、自動的にninjectによって注入されます。WPFでのNinjectコンストラクタの注入
しかし、私はこのようなウィンドウ持っているように私にできるようになるWPFのために、このようなninject延長、発見していない:
public partial class MainWindow : Window
{
private readonly IService injectedService;
public MainWindow(IService injectedService)
{
this.injectedService = injectedService;
}
}
は、私が明示的にIKernel
を使用せずにこれを実行したいと思いますが、私のmainwindowのインスタンスを取得するためのメインアプリケーションの起動。私は主ウィンドウとすべての後続のウィンドウのインスタンスを取得するために、xaml構成の通常の方法を使用する方が好きです。
これは可能ですか? xamlによって生成されたオブジェクトの作成をフックして、Ninjectを使用してコンストラクタの依存性注入を行う方法はありますか?
WPFでは通常、MVVMパターンを使用しており、サービスをViewModelクラスに挿入するため、このような拡張は存在しません。 –
しかし、XAMLを介して作成されたモデル自体はありませんか?確かに、私はWPFの専門家ではありませんが、モデルは従属注入と同じ種類のものを必要としませんか?私はコンテナを見せてプロジェクトの単体テストを妨げることに懸念しています。 – Dervall
いいえ、ViewModelはXAMLで作成されません。それらはViewModelLocatorで作成されます。例については、[here](http://windowsphonegeek.com/articles/Working-with-a-simple-ViewModelLocator-from-MVVM-Lite)を参照してください。ビューまたはViewModelは依存性注入コンテナについて何も知らない。 –