有什么方法可以在特定于平台的代码中注入(inject)服务,例如在 MainActivity.cs
中?我认为 Xamarin 为此使用了 DependencyService
。
也可以将它们注入(inject)后台 Services
和 Broadcast Receivers
吗?
我目前尝试做的是更新它们,但我想知道目前是否有更好的解决方案。据我了解,特定于平台的代码中的 DI 容器与您在 MauiProgram.cs
中使用的主要容器不同,我看到了他们从头开始实现一个的示例。
最佳答案
我在 Jame Montemagno's Youtube 上找到了这个.我想这就是你要找的。视频是here .
public static class ServiceHelper {
public static T GetService<T>() => Current.GetService<T>();
public static IServiceProvider Current =>
#if WINDOWS10_0_17763_0_OR_GREATER
MauiWinUIApplication.Current.Services;
#elif ANDROID
MauiApplication.Current.Services;
#elif IOS || MACCATALYST
MauiUIApplicationDelegate.Current.Services;
#else
null;
#endif }
关于c# - 平台特定代码中的 .NET MAUI 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72939282/