我已经根据文档设置了一个示例blazor.net application。之后,我创建了一项新服务,并对一些数据进行了硬编码,然后尝试运行该应用程序。
但是我在控制台中收到以下错误:
没有
<applicationName>.App.Services.<serviceName>
类型的注册服务
似乎新服务名称需要在某些地方注册,我该如何注册新服务?
答案 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>();
}
...
...