Avatar ·

如何使用运行时获取的Type变量调用泛型方法

大家好!我正在用C#写一个应用程序,遇到了一个几个小时都解决不了的问题。我有一个泛型方法,它接受任何数据类型并对其执行一些逻辑,比如序列化。它看起来像这样: ```csharp public T Deserialize(string jsonData) { return JsonSerializer.Deserialize(jsonData); } ``` 问题在于,我想调用这个方法的类型**只在运行时**才能获得——它存储在变量 `Type myType` 中。例如,我加载一个程序集,找到其中的类,并想为每个类反序列化JSON,但我只知道类型是 `Type` 对象。 我尝试过这样做: ```csharp Type myType = typeof(MyClass); // 这是动态获取的 var result = Deserialize(jsonString); // 编译错误! ``` 编译器自然会报错:“myType is a variable but is used like a type”。我知道泛型参数必须在编译时已知,但我该如何在运