平台特定代码中的 .NET MAUI 依赖注入

Sco*_*Boy 5 .net c# xamarin maui

有没有办法在特定于平台的代码中注入服务,例如MainActivity.cs?我认为 Xamarin 用于DependencyService此目的。也可以将它们注入后台ServicesBroadcast Receivers

我目前试图做的是更新它们,但我想知道目前是否有更好的解决方案。据我了解,平台特定代码中的 DI 容器与您在 中使用的主要容器不同MauiProgram.cs,我见过他们从头开始实现一个的示例。

小智 9

我在Jame Montemagno 的 Youtube上找到了这个。我想这就是您正在寻找的。视频在这里

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 }
Run Code Online (Sandbox Code Playgroud)