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

时间:2019-02-19 08:06:06

标签: blazor

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

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

  

没有<applicationName>.App.Services.<serviceName>类型的注册服务

似乎新服务名称需要在某些地方注册,我该如何注册新服务?

2 个答案:

答案 0 :(得分:7)

值得注意的是,对于Blazor WebAssembly,没有像Blazor Server中的启动类那样的Startup类。在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();
 }

答案 1 :(得分:1)

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

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

示例代码:

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

    ...
    ...