Zgubiłem się z Ninject w WPF.Aplikacja WPF z Ninject
Inicjuję go w App.xaml, ale właściwość ITest w MainWindow.xaml (nawet z InjectAttribute) nie jest rozwiązywana i pozostaje pusta.
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
IKernel kernel = new StandardKernel();
kernel.Bind<ITest, Test>();
base.OnStartup(e);
}
}
I googled nieco i okazało się, że to nie działa w ten sposób. Próbując znaleźć rozwiązanie, doszedłem do stworzenia IMainWindow z niczym więcej niż "void Show();" i dodanie go do 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);
}
}
Do tego dostaję NullReferenceException na linii z .get
Próbowałem też tak:
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);
}
}
Teraz dostaję NullReferenceException na linii .Inject w MainWindow.
Znalazłem różne rozwiązania, ale wydawało mi się, że są w wadze ciężkiej i zrezygnowałem z testowania ich wszystkich i próbowałem, który z nich działa.
Proszę o pomoc?
Co dokładnie to 'NullReferenceException' jest? – AgentFire