【发布时间】:2015-10-19 09:01:31
【问题描述】:
我在 WPF 应用程序中使用 ninject 的内核作为视图模型定位器。
内核帮助类:
public static class IoCKernel
{
private static IKernel kernel;
public static void Init(params NinjectModule[] modules)
{
if (kernel == null)
{
kernel = new StandardKernel(modules);
}
}
public static T Get<T>()
{
return kernel.Get<T>();
}
}
ViewModelLocator 公开了Get 方法,例如:
public class ViewModelLocator : IViewModelLocator
{
public MainWindowViewModel MainWindowViewModel
{
get
{
return IoCKernel.Get<MainWindowViewModel>();
}
}
}
当需要实例时,它的调用如下:
IoCKernel.Get<IViewModelLocator>().MainWindowViewModel;
但是,IoCKernel.Get<MainWindowViewModel>() 将始终返回一个新实例。有没有办法让它只适用于一个实例?
【问题讨论】:
标签: c# wpf mvvm ninject viewmodellocator