2011-06-27 57 views
1

我將在數據庫字段中存儲Type.FullName,即'System.String'。將被存儲的類型名稱是任意的,不在我的控制之下。類型名稱的最大長度是多少?什麼是Type.FullName字段的合理長度限制?

編輯:我不會使用此信息來創建類型的實例,它只是用於過濾/排序/分組,因此只存儲FullName而不是AssemblyQualifiedName是可以的。

回答

4

有沒有我知道的最大長度...所以你應該最多明智的長度。像256這樣的東西應該足以滿足任何明智的,海事組織。 128可能是好的,但如果你有一個深層次的命名空間和長外的類名和長嵌套類的名字,我想這是可能一個真正的類型名稱會超出128 ...

是隻有沒有組裝信息的類型名稱,你絕對可以嗎?如果需要使用Type.GetType(string)來獲得類型,除非它在當前正在執行的程序集或mscorlib中,否則您將需要程序集信息。顯然,這增加了相當長的字符串...

編輯:如您在評論中所述,如果您使用構造的泛型類型,名稱可能會很快變長。所以,而typeof(List<>).FullName是相當短的,typeof(List<string>).FullName不是。

如果您打算存儲構建的泛型類型,可能值得給出一個相當大的限制。不過,我希望在大多數情況下,像4096這樣的東西應該足夠了:)

+0

謝謝。在我的情況下,這是不相關的,但有趣的是知道任何泛型類型參數將表示爲AssemblyQualifiedName,這可能會大大增加長度。在這裏看到第二個評論:http://msdn.microsoft.com/en-us/library/system.type.fullname.aspx –

+0

@Robert:這是一個好點,是的 - 將編輯。 –

+0

我不會使用這個字段來獲取實際的類型,它只是用於過濾/分組/排序。 –