【发布时间】:2020-07-26 09:01:40
【问题描述】:
使用 Simple Injector 尝试 MVVM,我遵循了以下指南:https://simpleinjector.readthedocs.io/en/latest/wpfintegration.html
即使是只有 MainWindow.xaml + MainWindowViewModel 的最简单示例,它也会创建 View 和 ViewModel 的双重实例(我也尝试过省略容器验证)。而且,应用程序关闭后,进程仍然在运行。
[STAThread]
static void Main()
{
var container = new Container();
container.Register<MainWindow>();
container.Register<MainWindowViewModel>();
var app = new App();
app.InitializeComponent();
var mainWindow = container.GetInstance<MainWindow>();
app.Run(mainWindow);
}
我确实将App.xaml 中的StartupUri 替换为Startup 方法,该方法是空的,好像我没有这样做一样,app.InitializeComponent() 方法不可用。
关于 DI Container 用于 MVVM 的任何建议?
【问题讨论】:
-
您是否尝试将
EnableAutoVerification设置为false?即container.Options.EnableAutoVerification = false? -
@Steven Wow 它确实有帮助,就像一个魅力。你可以做一个答案,这样我就可以标记它,哦,男孩……一行太麻烦了。
标签: c# wpf mvvm simple-injector