-1

这是我的情况:

我已经设置了这样的路线:

Routing.RegisterRoute("Cars/CarMgmtPage", typeof(CarMgmtPage));

单击按钮时,它会调用以下内容:

await Shell.Current.GoToAsync("Cars/CarMgmtPage", true);

但是 CarMgmtPage 在这样的参数中采用构造函数;

public CarMgmtPage(IAddCar addCar1, 
                   IAddCar addCar2)

我需要做的是Microsoft.Extensions.DependencyInjection使用我的应用程序中使用的来创建这个页面,如下所示:

var abc = Startup.ServiceProvider.GetRequiredService<CarMgmtPage>();

但我不知道该怎么做,因为 Xamarin Shell 似乎处理了页面的创建,我不知道如何将 DI 融入其中。

我希望有人对如何做到这一点有一些想法。

4

1 回答 1

0

在这个时候,这似乎是不可能的。Xamarin Github 中有几个问题在讨论这个问题:

[Enhancement] Dependency Injection support for creating ContentPage in Shell. #8359

目前的状态是:

考虑中-2020 年 6 月 2 日对增强功能的高度关注

[WiP] .NET MAUI Shell Improvements #10804

所以这个问题的答案是,我们希望在不久的将来会出现这种情况,但现在它仍处于计划阶段。

于 2021-02-08T15:40:58.507 回答