什么是Type.FullName字段的合理长度限制?
问题描述:
我将在数据库字段中存储Type.FullName,即'System.String'。将被存储的类型名称是任意的,不在我的控制之下。类型名称的最大长度是多少?什么是Type.FullName字段的合理长度限制?
编辑:我不会使用此信息来创建类型的实例,它只是用于过滤/排序/分组,因此只存储FullName而不是AssemblyQualifiedName是可以的。
答
有没有我知道的最大长度...所以你应该最多明智的长度。像256这样的东西应该足以满足任何明智的,海事组织。 128可能是好的,但如果你有一个深层次的命名空间和长外的类名和长嵌套类的名字,我想这是可能一个真正的类型名称会超出128 ...
是只有没有组装信息的类型名称,你绝对可以吗?如果需要使用Type.GetType(string)
来获得类型,除非它在当前正在执行的程序集或mscorlib中,否则您将需要程序集信息。显然,这增加了相当长的字符串...
编辑:如您在评论中所述,如果您使用构造的泛型类型,名称可能会很快变长。所以,而typeof(List<>).FullName
是相当短的,typeof(List<string>).FullName
不是。
如果您打算存储构建的泛型类型,可能值得给出一个相当大的限制。不过,我希望在大多数情况下,像4096这样的东西应该足够了:)
谢谢。在我的情况下,这是不相关的,但有趣的是知道任何泛型类型参数将表示为AssemblyQualifiedName,这可能会大大增加长度。在这里看到第二个评论:http://msdn.microsoft.com/en-us/library/system.type.fullname.aspx –
@Robert:这是一个好点,是的 - 将编辑。 –
我不会使用这个字段来获取实际的类型,它只是用于过滤/分组/排序。 –