C# EventAggregator和ServiceLocator问题
我开始使用Prism和MVVM处理一个WPF项目,并尝试使用eventAggregator,但当执行下面这行时,会引发异常:C# EventAggregator和ServiceLocator问题,c#,wpf,prism,eventaggregator,C#,Wpf,Prism,Eventaggregator,我开始使用Prism和MVVM处理一个WPF项目,并尝试使用eventAggregator,但当执行下面这行时,会引发异常: IServiceLocator ob = ServiceLocator.Current; // This line causes a Null pointer exception EventAggregator = ob.GetInstance<IEventAggregator>(); IServiceLocator ob=ServiceLocator.Cu
IServiceLocator ob = ServiceLocator.Current; // This line causes a Null pointer exception
EventAggregator = ob.GetInstance<IEventAggregator>();
IServiceLocator ob=ServiceLocator.Current;//此行导致空指针异常
EventAggregator=ob.GetInstance();
但我不明白我做错了什么,也许这是一件很简单的事情,但我已经为此挣扎了几个小时
希望有人能帮助我,提前谢谢您缺少定位器的初始化代码 要么您使用Prism(是吗?),要么您需要正确设置引导程序- 或者您不使用Prism,只需手动设置定位器(例如在
Main
中):
打电话
var bootstrapper = new CustomBootstrapper();
bootstrapper.Run();
在应用程序的启动例程中。根据我的记忆,
UnityBootTrapper
将IEventAggregator
注册为singleton,这样您就不必重复了。您缺少定位器的初始化代码
要么您使用Prism(是吗?),要么您需要正确设置引导程序-
或者您不使用Prism,只需手动设置定位器(例如在Main
中):
打电话
var bootstrapper = new CustomBootstrapper();
bootstrapper.Run();
在应用程序的启动例程中。据我记忆所及,
UnityBootTrapper
将IEventAggregator
注册为singleton,这样您就不必重复了。此代码在哪里执行,您使用的是哪个引导程序?例如,如果它是Unity,您可能应该使用IUnityContainer
来解析实例,而不是ServiceLocator
。我没有使用任何引导程序,但感谢Wiktor Zychla,我解决了我的问题,这段代码在哪里执行,您使用的是哪个引导程序?例如,如果是Unity,您可能应该使用IUnityContainer
来解析实例,而不是ServiceLocator
。我没有使用任何引导程序,但感谢Wiktor Zychla,我解决了我的问题,因为我是新使用prism的人,我不知道我必须初始化定位器。非常感谢你!!因为我刚使用prism,我不知道我必须初始化定位器。非常感谢你!!
public class CustomBootstrapper : UnityBootstrapper
{
}
var bootstrapper = new CustomBootstrapper();
bootstrapper.Run();