Blazor @inject 数据服务取决于项目

Blazor @inject data service depending on project

我有一个仅用于控件的共享 .net 6 项目。我想在 .Net Blazor Web 中使用与 .Net Maui Blazor 相同的控件。我试图这样做,但它不起作用。知道如何根据调用的内容切换调用的数据服务吗?

@*@if(AppDomain.CurrentDomain.FriendlyName == "nu.web") 
{
    @inject IDataService _db
}
else
{
    @inject IHttpService _db
}*@

感谢您的帮助...

根据 Bennyboy1973 的提示...我删除了额外的接口 IHttpService 并在 HttpService 和 DataService 上使用了 IDataService。

然后在 .Net Blazor 网络应用 startup.cs 文件中: builder.Services.AddSingleton();

然后在 .Net Maui Blazor 应用 MauiProgram.cs 文件中: builder.Services.AddSingleton();

如果有人关心我为什么要这样......我通过网络上的 Dapper 调用 SQL 得到了轻微的性能改进,.Net Maui 不允许它......所以我调用相同Dapper SQL 通过 Minimal API.

再次感谢大家的回答