'BackgroundService'是一个命名空间,但像类型一样使用

问题描述 投票:0回答:1

我正在 .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);
            }
        }
    }
}
c# asp.net-core background-service
1个回答
3
投票

将命名空间

BackgroundService
更改为其他名称,否则它会隐藏类型名称:

namespace MyApp.BackgroundServices
{
    public class Worker : BackgroundService
    {
        // ...
    }
}

或者,您可以指定完全限定的类型名称(尽管我认为应该首选第一个选项):

public class Worker : Microsoft.Extensions.Hosting.BackgroundService
{
   // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.