gpt4 book ai didi

c# - 从 Microsoft.Maui.Controls.Application 中的 IServiceProvider 解析 MainPage

转载 作者:行者123 更新时间:2023-12-05 03:31:57 26 4
gpt4 key购买 nike

我创建了一个新的 dotnet maui 项目并想解决 MainPage来自 IServiceProvider .

我添加到 MauiProgram.cs这条线 builder.Services.AddSingleton<MainPage>(); .而不是 ( App.xaml.cs ):

    public partial class App : Microsoft.Maui.Controls.Application
{
public App()
{
InitializeComponent();
MainPage = new MainPage();
}
}

我想检索或以某种方式访问​​ MauiApp解决MainPage来自 IServiceProvider .类似的东西:

    public partial class App : Microsoft.Maui.Controls.Application
{
public App()
{
InitializeComponent();
var mauiApp = (MauiApp)this;
MainPage = mauiApp.Services.GetService(typeof(MainPage)) as ContentPage;
}
}

最好的方法是什么?

最佳答案

在 MauiProgram.cs 中:

为您需要的任何服务添加单例:

   public static MauiApp CreateMauiApp()
{
builder.Services.AddSingleton<MainPage>();
builder.Services.AddSingleton<IGoodbyeWorldService, GoodbyeWorldService>();
}

在 App.Xaml.cs 中:

在 App 方法的参数中包含 MainPage 并分配给 MainPage:

    public App(MainPage page) 
{
InitializeComponent();
MainPage = page;
}

然后在 MainPage.xaml.cs 的参数中包含您需要的服务:

    public MainPage(IGoodbyeWorldService service)
{
InitializeComponent();
lblOne.Text = service.SayGoodbye();
}

关于c# - 从 Microsoft.Maui.Controls.Application 中的 IServiceProvider 解析 MainPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70549447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com