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.
再次感谢大家的回答
我有一个仅用于控件的共享 .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.
再次感谢大家的回答