[英]How to get the assembly name and class name with full namespace of a given class in the solution?
我正在使用WPF,並且經常需要獲取給定類的名稱空間和程序集名稱。 但我不知道該怎么做。
那么,如何在解決方案資源管理器中瀏覽類時和/以及編輯類的代碼時獲取名稱? 請幫忙!
您可以使用Visual Studio 立即窗口作為獲取其中一個解決方案項目的程序集限定名稱的快速方法。
IIRC,這些步驟應該有效:
typeof(ClassNameOfStep1).AssemblyQualifiedName
並按Enter鍵 。 立即窗口依賴於設計時表達式評估,而后者依賴於Visual Studio托管過程,因此您需要啟用它,默認情況下已啟用。
此外,我做了一些快速測試,除了我在VS 2008上嘗試它時,類的名稱在所有情況下都足夠了,這要求我提供該類型的FullName
。 因此,如果Name
導致錯誤,請使用Name
命名空間。
這些應該給你你想要的東西:
var assemblyName = typeof(ClassNameGoesHere).AssemblyQualifiedName;
var namespaceOfClass = typeof(ClassNameGoesHere).Namespace;
我看到你剛剛在關於“在解決方案瀏覽器中瀏覽課程時”的問題添加了一個注釋,簡單的答案就是據我所知,你不能,因為那不是解決方案資源管理器所針對的(它在那里)用於瀏覽解決方案中的文件,而不是其中包含的內容),還因為:
您可能想看看“類視圖”是否為您提供了所需內容,但我懷疑它不會。
您可以使用F#interative,只需打開窗口(查看 - >其他Windows - > F#Interactive)並嘗試以下操作:
> typedefof<System.Uri>.Assembly.FullName;;
val it : string =
"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
像System一樣自動引用一些程序集。 如果需要從另一個程序集中獲取名稱,則需要先添加引用(例如服務模型)。
> #r "System.ServiceModel.dll";;
--> Referenced 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.ServiceModel.dll'
> typedefof<System.ServiceModel.ICommunicationObject>.Assembly.FullName;;
val it : string =
"System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
F#interative是Visual Studio 2010的一部分。
你需要Object Browser
。 按Ctrl + Alt + J.
在那里你會看到所有類型的元信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.