#asp.net-core #asp.net-core-webapi #background-service
Вопрос:
Я пишу фоновую службу в .NET Core, и в моем ExecuteAsync
методе я получаю эту ошибку:
ОШИБКА: «Выведена обратная печать.ExecuteAsync(CancellationToken)’: не найдено подходящего метода для переопределения
BackgroundTask.Демо
Вот мой класс:
namespace BackGroundTask.Demo
{
public class DerivedBackGroundPrinted : Backgroundservice
{
private readonly IWroker worker;
public DerivedBackGroundPrinted(IWroker worker)
{
this.worker = worker;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await worker.DoWOrk(stoppingToken);
}
}
}
Мой Backgroundservice
класс:
namespace BackGroundTask.Demo
{
public class Backgroundservice
{
}
}
Комментарии:
1. Похоже, он ожидает метод Demo() в классе BackgroundTask. Вы пробовали дать ему то, чего он ожидает?
2. В вашем локальном фоновом сервисе есть элемент, который нужно переопределить. Скорее всего, вы ищете Microsoft. Расширения. Принимающий. BackgroundService и ваш производный класс используют класс, определенный в одном и том же пространстве имен. Либо удалите локальный класс, либо используйте явное пространство имен встроенной фоновой службы платформы
Ответ №1:
Ваш локальный фоновый сервис
namespace BackGroundTask.Demo
{
public class Backgroundservice
{
// No members have been defined within the class
}
}
нужно ли переопределять этот элемент, чтобы сообщение об ошибке было точным. Возможно, ваш локальный класс был автоматически создан по ошибке.
Скорее всего, вы ищете Microsoft.Расширения.Принимающий.BackgroundService и ваш производный класс используют класс, определенный в одном и том же пространстве имен.
Либо удалите локальный класс и добавьте using
пространство имен
namespace BackGroundTask.Demo
{
using Microsoft.Extensions.Hosting;
public class DerivedBackGroundPrinted : BackgroundService
{
private readonly IWroker worker;
public DerivedBackGroundPrinted(IWroker worker)
{
this.worker = worker;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await worker.DoWOrk(stoppingToken);
}
}
}
или используйте явное пространство имен встроенной фоновой службы платформы
namespace BackGroundTask.Demo
{
public class DerivedBackGroundPrinted : Microsoft.Extensions.Hosting.BackgroundService
{
private readonly IWroker worker;
public DerivedBackGroundPrinted(IWroker worker)
{
this.worker = worker;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await worker.DoWOrk(stoppingToken);
}
}
}