【发布时间】:2021-05-19 14:09:02
【问题描述】:
有这门课:
class ClassA{
}
以及具有此签名的方法:
void MyMethod<T>();
我们都是这样用的:
MyMethod<ClassA>();
但是...存在调用MyMethod 将类名作为字符串的机会吗?即:
var className = "ClassA";
MagicMethod($"MyMethod<{className}>();");
我说的是 JavaScript 中的 Eval 等价物。反思?,有什么想法吗?
我搜索了一些库,例如 DynamicExpresso,但没有任何支持泛型类型的库。
关于可能的重复:
- Calling a function from a string in C# 没有解决我的问题,我的问题是特定于调用方法使用泛型类型。
【问题讨论】:
-
或
Type t = Type.GetType(string_name_of_type);,更多文档here -
我认为Calling a function from a string in C# 的情况不同,因为该示例不使用泛型类型。
-
@Alexander,我不认为这是重复的......
-
@DanielGruszczyk,我们需要使用反射,据我了解,问题是调用泛型方法。这就是“使用反射调用...”的问题
标签: c# generics reflection eval