如何从字符串表示中获取通用类型?

2023-12-12

I have MyClass<T>.

然后我有这个string s = "MyClass<AnotherClass>";。如何从字符串中获取 Types?

一种方法(丑陋)是解析出“”并执行以下操作:

Type acType = Type.GetType("AnotherClass");  
Type whatIwant = typeof (MyClass<>).MakeGenericType(acType);

但是有没有一种更干净的方法来获得最终类型而不需要任何解析等?


The 泛型的格式是名称、` 字符、类型参数的数量,后跟括号中以逗号分隔的类型列表:

Type.GetType("System.Collections.Generic.IEnumerable`1[System.String]");

我不确定是否有一种简单的方法可以将泛型的 C# 语法转换为 CLR 所需的字符串类型。我开始编写一个快速正则表达式来解析它,就像您在问题中提到的那样,但意识到除非您放弃将嵌套泛型作为类型参数的能力,否则解析将变得非常复杂。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从字符串表示中获取通用类型? 的相关文章

随机推荐