如何通过 Type 变量调用 C# 中的泛型方法?
大家好。我正在编写一个需要处理不同类型数据的小型解析器,但遇到了一个问题,已经困扰我两天了。
我有一个泛型方法:
```csharp
public T Deserialize(string data) where T : class
{
// 一些反序列化逻辑
return JsonConvert.DeserializeObject(data);
}
```
在运行时,我获取到需要反序列化的对象的 `Type`。例如,通过反射我找到了所有实现 `IEntity` 接口的类,并希望为每个类调用 `Deserialize` 并指定具体类型。
问题在于,我不能直接写 `Deserialize(data)`,因为 `myType` 是一个 `Type` 类型的变量,而不是编译时的类型名称。我尝试过使用 `typeof` 和 `MakeGenericMethod`,但都不起作用。以下是我当前会报错的代码:
```csharp
Type targetType = typeof(MyClass);
MethodInfo method = typeof(MyParser).GetMethod("Deserialize");
MethodInfo genericMethod = m