2010-01-25 68 views
10

我在哪裏存儲的高度,寬度,狀態數據庫表,等等,窗口。作爲窗口的標識符,我使用表單的完整類型名稱。它運行良好,但我發現一些通用的表單獲得的名字非常長。原因是通用類型列出了完整的程序集信息。有沒有辦法跳過這個?沒有程序集信息的泛型類型的全名?

例如常規形式的全名應該是這樣的:

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]] 

任何線索?

+0

你怎麼叫什麼名字? .GetType()。全名? – 2010-01-25 14:06:03

+0

@Tor:這是對的,是的。 – Svish 2010-01-25 14:20:53

+0

@Svish [b8adamson的答案](http://stackoverflow.com/a/4662878/521757)實際上是正確的。 – jnm2 2016-02-12 21:18:44

回答

11

我在你的最終目標似乎很奇怪dbemerlin同意,但我只是想指出,

GetType().ToString(); 

似乎返回類型名稱的短版本(W/O的通用參數集信息)。

我想這可能對類型名稱的更多人類可讀的版本是得心應手。

+4

這應該是答案。謝謝。 – IllidanS4 2014-05-29 17:45:16

2

我想使用泛型類的類型取決於特定的組件(如大多數.NET類的),所以我不認爲你會得到什麼都沒有通過反射或字符串解析手動創建此字符串。

OTOH我不認爲使用類型名稱作爲關鍵字是一個好主意,也許你應該考慮讓其他一些重要的(但我不知道這個要求,所以我不能建議別的東西)

相關問題