WPFのNinjectで迷子になりました。NinjectのWPFアプリ
私はApp.xamlで初期化しますが、(InjectAttributeを使用していても)MainWindow.xamlのITestプロパティは解決されず、nullのままです。
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
IKernel kernel = new StandardKernel();
kernel.Bind<ITest, Test>();
base.OnStartup(e);
}
}
私はちょっとグーグルでそれがうまくいかないことを知りました。解決策を見つけようとすると、私はIMainWindowを "Show(void)"を除いて作成することになりました。それをMainWindowに追加します。このため
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
IKernel kernel = new StandardKernel();
kernel.Bind<ITest, Test>();
kernel.Bind<IMainWindow, MySolution.MainWindow>();
kernel.Get<IMainWindow>().Show();
base.OnStartup(e);
}
}
、私はに.get
でライン上とNullReferenceExceptionを取得しています、私もこれを試してみました:今、私は.InjectラインでとNullReferenceExceptionを取得しています
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
IKernel kernel = new StandardKernel();
kernel.Bind<ITest, Test>();
MainWindow = new MySolution.MainWindow(kernel);
//then kernel.Inject(this); in the MainWindow constructor
MainWindow.Show();
base.OnStartup(e);
}
}
MainWindowにあります。
私は別のさまざまなソリューションを見つけましたが、ヘビーウェイトのように見えましたが、私はそれらのすべてをテストし、どちらが動作するのかを諦めました。
お願いします。
'NullReferenceException'はあなたを正確に何をしているのですか? – AgentFire