我的应用程序在 VS 2013 调试器中运行良好。手动启动应用程序(debug.exe)时,出现以下异常:
06.11.2015 13:31:08 WiiLogger\: System.Reflection.TargetInvocationException: Property accessor 'MainViewModel' on object 'MyTool.ViewModels.ViewModelLocator' threw the following exception:'Exception has been thrown by the target of an invocation.'
这是 MVVM 光定位器代码:ctor:
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<MyRepository>();
SimpleIoc.Default.Register<TrayContextMenuViewModel>();
SimpleIoc.Default.Register<EmployeeListViewModel>();
SimpleIoc.Default.Register<SettingsViewModel>();
SimpleIoc.Default.Register<MainViewModel>();
}
财产
public MainViewModel MainViewModel
{
get
{
return ServiceLocator.Current.GetInstance<MainViewModel>();
}
}
我在 MainWindow.xaml 中创建这样的实例:
<DockPanel x:Name="MainPanel" DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
这是我的 MainViewModel 的 CTOR:
public MainViewModel(EmployeeListViewModel emplyeeVM, TrayContextMenuViewModel trayVM, SettingsViewModel settingsVM, WiiRepository repository)
我真的不明白为什么应用程序在通过 Visual Studio 2013 启动时可以工作,但是当我手动启动它时它会崩溃:/