没有汇编信息的generics类型的FullName?
我有一个数据库表,我存储窗口的高度,宽度,状态等。 作为窗口的标识符,我使用表单的完整类型名称。 它运作良好,但我发现一些通用的表单会获得非常长的名称。 原因是generics类型列出了完整的汇编信息。 有没有办法跳过它?
例如,常规表单的全名如下所示:
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]]
有什么线索吗?
我同意dbemerlin的说法,你的最终目标似乎很奇怪,但我只想指出这一点
GetType().ToString();
似乎返回了typename的较短版本(没有generics参数的汇编信息)。
我想这对于类型名称的更易读的版本来说可能很方便。
我想用于generics类的Type依赖于特定的程序集(就像大多数.NET类一样)所以我认为如果不通过reflection或字符串解析手动创建此字符串,您将不会得到任何其他内容。
OTOH我不认为使用类型名称作为键是一个好主意,也许你应该考虑获得一些其他键(但我不知道要求,所以我不能推荐别的东西)