我将在数据库字段中存储Type.FullName,即'System.String'。将存储的类型名称是任意的,不受我的控制。类型名称的最大长度是多少?
编辑:我不会使用此信息来创建该类型的实例,它仅用于过滤/排序/分组,因此只存储FullName而不是AssemblyQualifiedName即可。
答案 0 :(得分:4)
我没有意识到最大长度...所以你应该选择最长明智的长度。像256这样的东西应该足以让任何明智的东西,IMO。 128可能没问题,但是如果你有一个深的命名空间层次结构和一个长的外部类名和一个长的嵌套类名,我想它是可能的一个真实的类型名称将超过128 ...
对于没有汇编信息的类型名称,你绝对没问题吗?如果您需要能够使用Type.GetType(string)
获取类型,则需要汇编信息,除非它在当前正在执行的程序集或mscorlib中。显然,这会给相关的字符串增加相当长的时间......
编辑:正如您的评论中所述,如果您使用构造的泛型类型,名称可能会很快变长。因此typeof(List<>).FullName
非常短,typeof(List<string>).FullName
不是。{/ p>
如果您要存储构造的泛型类型,则可能值得给出相当大的限制。不过,在大多数情况下,我希望像4096这样的东西就够了:)