我正在 .NET 8 中创建后台服务,但出现以下错误
错误CS0118“BackgroundService”是一个命名空间,但像类型一样使用
这适用于 .NET 6 版本。
我已卸载并重新安装 Microsoft.Extensions.Hosting 但似乎不起作用。
创建新项目并面临这个问题:
using Microsoft.Extensions.Hosting;
namespace BackgroundService
{
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
public Worker(ILogger<Worker> logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
if (_logger.IsEnabled(LogLevel.Information))
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
}
await Task.Delay(1000, stoppingToken);
}
}
}
}
将命名空间
BackgroundService
更改为其他名称,否则它会隐藏类型名称:
namespace MyApp.BackgroundServices
{
public class Worker : BackgroundService
{
// ...
}
}
或者,您可以指定完全限定的类型名称(尽管我认为应该首选第一个选项):
public class Worker : Microsoft.Extensions.Hosting.BackgroundService
{
// ...
}