Wie ruft man eine generische Methode über eine Type-Variable in C# auf?
Hallo zusammen. Ich schreibe einen kleinen Parser, der verschiedene Datentypen verarbeiten soll, und bin auf ein Problem gestoßen, das ich seit zwei Tagen nicht lösen kann.
Ich habe eine generische Methode:
```csharp
public T Deserialize(string data) where T : class
{
// eine Deserialisierungslogik
return JsonConvert.DeserializeObject(data);
}
```
Zur Laufzeit erhalte ich den `Type` des Objekts, das deserialisiert werden soll. Zum Beispiel finde ich über Reflexion alle Klassen, die das Interface `IEntity` implementieren, und für jede möchte ich `Deserialize` mit dem spezifischen Typ aufrufen.
Das Problem ist, dass ich nicht einfach `Deserialize(data)` schreiben kann, weil `myType` eine Variable vom Typ `Type` ist und kein Typname zur Kompilierzeit. Ich habe versucht, `typeof` und `MakeGenericMethod` zu verwenden, aber nichts funktioniert. Hier ist mein aktueller Code, der einen Fehler ausgibt:
```csharp
Type targetType = typeof(MyClass);
MethodInfo method = typeof(MyParser).GetMethod("Deserialize");
MethodInfo genericMethod = m
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs