2010-04-09 68 views
4

我正在爲一些專用的自定義域邏輯編寫自定義反射庫,並且該庫將使用XML配置文件,這些文件將在運行時動態解析System.Type對象。但是,在編寫XML配置文件時,編寫這些類型有點痛苦,因爲它們需要是Type.GetType()的完全限定的程序集名稱來解決它們。有沒有辦法找出Visual Studio中的對象的AssemblyQualifiedName,而不訴諸編寫程序打印出來的文件或標準出來或類似的東西?在Visual Studio中獲取組件的合格名稱

+0

我在這裏發現了一個很好的答案:http://stackoverflow.com/a/17396630/3899583 – vojta 2016-12-15 13:46:28

回答

3

我要改變我的意見,以一個合適的回答,因爲有一個快速的打法是什麼,我建議你想要做什麼了。

下載反射器的免費版本from here,解壓縮並運行它。將編譯後的程序集版本拖放到它上面,並在對話框底部的信息部分中名稱標記的旁邊將爲其完全限定名稱,隨時可供您從中複製和粘貼。

請注意,所有你需要的信息也availableby在編譯的文件上右鍵單擊,選擇屬性,然後去詳細標籤,但你不能只是複製/粘貼那裏。

+0

不是技術上的AssemblyQualifiedName,但足夠接近。非常感謝您的幫助。 – 2010-04-09 23:30:37

0

我不確定我是否理解這個問題。你想以編程方式獲得你的類型的全名?如果是這樣,您可以始終使用typeof(YourType).FullNametypeof(YourType).AssemblyQualifiedName

我能想到的是用一些自定義屬性標記所有需要的類型,以便在組件中輕鬆找到它們以提取它們的名稱,我不認爲如果不通過每種類型需要提取它的名字。

+0

不,我不想讓他們以編程方式,我已經知道如何做到這一點。我想知道是否有辦法在visual studio中找到一個類的AssemblyQualifiedName,而不使用代碼打印出我的類的名稱,因爲我將不得不在配置文件中使用Type.AssemblyQualifiedName – 2010-04-09 22:09:33

4

如果我處於您的情況,我將彈出立即窗口(調試 - > Windows - >立即)並使用typeof(TypeFullName).AssemblyQualifiedName

您需要使用完整名稱空間來限定類型才能執行此操作,這也會自動運行解決方案啓動項目的副作用。暫時將類庫設置爲解決方案啓動項目可以緩解此副作用。

例子:

typeof(System.Windows.Forms.Button).AssemblyQualifiedName 
+0

感謝您的回答 – 2012-09-07 22:17:45