簡體   English   中英

如果我只有類名和dll名稱,如何獲得完全限定的程序集引用?

[英]How do I get a fully-qualified assembly reference if I only have the class name and dll name?

我有一個在緊湊框架3.5中運行的應用程序,並且必須通過線路將信息發送到運行4.0框架的服務。 具體來說,我正在傳遞有關例外情況 我需要能夠使用類名和程序集名稱創建指定異常的新實例。

我正在使用Activator.CreateInstance()來創建對象,我計划使用Type.GetType()來獲取對4.0框架中相應類型的引用。 但是,我不知道如何從類名和程序集名稱中獲取Type引用(或完全限定的程序集名稱來獲取類型引用)(因為我不知道4.0程序集中的PublicKeyToken)。

我意識到我可以欺騙並將一些信息存儲在我的服務中進行翻譯,但我正在尋找一種完全動態的數據查找,不需要對任何令牌或版本字符串進行硬編碼。

我正在使用ProtoBuf-Net通過網絡序列化/反序列化我的數據。 我只是序列化Type值本身,但我發現這適用於某些Exception類型而不適用於其他類型,所以我已經使用了Class和Assembly的字符串名稱,因為我知道字符串將兼容兩個不同的序列化框架類型/版本。 特別是我遇到的第一個Exception,當傳遞Type值時,它就是System.Net.WebException。

您可以編寫System.Web和Fusion(CLR的程序集加載器)將為您找到匹配的程序集。
您不需要版本或公鑰令牌。

例如:

Type.GetType("System.Web.HttpException, System.Web")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM