添加新服务时 blazor.net 中没有类型错误的已注册服务

There is no registered service of type error in blazor.net when adding a new service

我已经根据文档设置了示例 blazor.net application。之后我创建了一个新服务并硬编码了一些数据并尝试 运行 应用程序。

但我在控制台中收到以下错误:

There is no registered service of type <applicationName>.App.Services.<serviceName>

新的服务名称好像需要注册一些,请问如何注册新的服务?

新创建的服务名称应该在<applicationName>.App\Startup.cs文件的ConfigureServices方法中注册。

例如,如果新服务名称为MyNewService.cs,则应在ConfigureServices方法中添加如下内容。

示例代码:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // ... existing services
        services.AddSingleton<MyNewService>();
    }

    ...
    ...

值得注意的是,对于 Blazor WebAssembly,没有像 Blazor Server 中那样的 Startup class。在 Blazor WebAssembly 中,我们可以在 Program.cs 中注册服务,如下所示:

public static async Task Main(string[] args)
{
    var builder = WebAssemblyHostBuilder.CreateDefault(args);

    //...other services
    builder.Services.AddSingleton<MyNewService>();

    builder.RootComponents.Add<App>("app");
    await builder.Build().RunAsync();
 }