没有assemblyinfo的泛型类型的全名?

时间:2010-01-25 14:02:24

标签: c# types tostring

我有一个数据库表,我存储窗口的高度,宽度,状态等等。作为窗口的标识符,我使用表单的完整类型名称。它运作良好,但我发现一些通用的表单会获得非常长的名称。原因是泛型类型列出了完整的汇编信息。有没有办法跳过它?

例如,常规表单的全名如下所示:

Some.Name.Space.NameOfForm

但是通用表单的全名如下所示:

Some.Name.Space.NameOfForm`1[[Some.Other.Name.Space.GenericType, AssemblyName, Version=1.0.2.0, Cuntulre=neutral, PublicKeyToken=null]]

为什么这么久?有没有办法可以获得更短的版本?例如:

Some.Name.Space.NameOfForm`1[[Some.Other.Name.Space.GenericType]]

任何线索?

2 个答案:

答案 0 :(得分:15)

我同意dbemerlin的说法,你的最终目标似乎很奇怪,但我只想指出

GetType().ToString();

似乎返回了一个较短版本的typename(没有泛型参数的汇编信息)。

我想这对于类型名称的更易读的版本来说非常方便。

答案 1 :(得分:2)

我想用于泛型类的Type取决于特定的程序集(与大多数.NET类一样),所以我认为如果不通过反射或字符串解析手动创建此字符串,您将不会得到任何其他内容。 / p>

OTOH我不认为使用类型名称作为键是一个好主意,也许你应该考虑获得一些其他键(但我不知道要求,所以我不能推荐别的东西)