这似乎很难解释,但很可能是我需要重新设计应用程序体系结构。我在我的App DI中使用Unity,并且像这样初始化它:
IServiceLocator serviceLocator = new UnityServiceLocator(container);
ServiceLocator.SetLocatorProvider(() => serviceLocator);
在App构造函数中,一切正常。这是问题。我的应用程序使用Android Alarm Manager响应意图,并且在处理意图时,Xamarin.Forms的“ App”可能未初始化,因此此时我无法访问ServiceLocator。我收到错误消息,“必须设置ServiceLocationProvider”。所以我的问题是,有没有办法独立于Xamarin.Forms应用程序初始化serviceLocator?还是我需要重新考虑我的应用程序设计。