Ich habe eine Implementierung einer abstrakten Klasse, die an eine Funktion übergeben wird, die einen generischen T
Parameter der angegebenen abstrakten Klasse akzeptiert. Aber aus irgendeinem Grund gibt es mir einen Fehler, der besagt, dass die konkrete Klasse im gegebenen Kontext nicht gültig ist.Konkrete Klasse ist in gegebenem Kontext nicht gültig, wenn sie als Typ übergeben wurde
Alle Ideen auf was geht, würde geschätzt werden.
Hilfsmethode
public static async Task<bool> StartSingleAppService<T>(T type) where T : Service
{
// GetServiceMaintainer() gets a singleton of my Services list
if (ServiceMaintainer.GetServiceMaintainer() != null)
{
Service service = ServiceMaintainer.GetServiceMaintainer().FindServiceByType(type);
if (await ServiceMaintainer.StartService(service))
{
return true;
}
}
return false;
}
Usage
// `UpdateService` is type not valid in the given context
await AppServices.StartSingleAppService(UpdateService);
Update
public class UpdateService : Service
Dienst
public abstract class Service
Hinweise:
- Die
Service
abstrakte Klasse definiert abstrakte Aufgabe Methoden.public abstract Task<bool> start();
- Die
Service
abstrakte Klasse definiert ein Paar Membervariablen - Die
UpdateService
Klasse die abstrakten Methoden implementiert und hat ein paar Hilfsfunktionen.
Bitte den vollständigen Inhalt des Fehlers veröffentlichen, sowie die Erklärung des 'UpdateService' variabel. –
@ JonB es ist keine Variable. Es ist die Klasse, die als Typ behandelt wird. und der Fehler ist nichts mehr als das, was ich gesagt habe. – visc
Rufen Sie Methode mit einem Objekt der 'UpdateService' Klasse auf oder übergeben Sie den Typ' UpdateService' an die Methode? –