鑑於,我有一種「Wibble.Wobble」存在於組裝「Foo.Bar」現有的類/方法
而該組件沒有裝入主要應用負載情況下
是否有解析以下字符串的後續部分現有的公共機制:
"Wibble.Wobble, Foo.Bar, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xyz"
之所以要求是,我需要在運行時加載各種類型,其中一些可能處於當前加載上下文中。其他人可能需要從外部裝配中加載。
我知道如何從當前加載上下文加載類型Type.GetType("typename")
,我知道如何加載程序集並從中獲取類型Assembly.LoadFile("xyz").GetType("abc")
。我遇到的問題是,如果您嘗試從程序集中加載某個類型,則它不應該是完全限定名稱,您可以像使用Type.GetType
時那樣。
解決方案本身不應該那麼複雜,它只是在第一個逗號前分割字符串。不過,我想知道是否有一種方法可以將完全限定名稱作爲對象表示形式,所以我不必這樣做,這將有助於查找正確的程序集,而無需遍歷整個目錄。
indexof爲您提供了逗號的第一個匹配項,它可以用作泛型參數中的分隔符。這不會很漂亮 –
@DavidSchmitt公平點,我還沒有處理這種情況,但我已經更新了示例使用LastIndexOf而不是IndexOf。謝謝你的提示。 – Bronumski
隨着LastIndexOf,它可能只是永遠不會工作,考慮 System.String,mscorlib,版本= 4.0.0.0,文化=中性,PublicKeyToken = b77a5c561934e089 最後一個索引只會得到PublicKeyToken部分 – Alex