2011-01-22 39 views
0

我有一個程序集,它是系統A的一個插件(它實現IASystemPlugin接口)。系統A是系統B的組件。我想從插件向系統B級別拋出異常。不幸的是,系統A和B都處理所有已知的異常並重新拋出所有未知的異常,所以我必須拋出B.SystemBException實例。拋出異常而不參考其主機程序集?

作爲一個系統客戶端,我沒有提及B類,最好不要(除了系統引用,所有引用都應該在A級註冊,這意味着要註冊30多個B程序集) 。在這種情況下,我能夠實例化看起來非常簡單的B.SystemBException類嗎?

任何黑客方法將不勝感激。

問候,

+0

你排除你有*做的事情。幾乎不需要引用* 30 *程序集,就足夠了。聲明異常類型的那個。 – 2011-01-22 16:42:38

+0

爲了使它工作,我必須將我的程序集註冊爲系統A的「插件」。如果「插件」包含對非系統程序集的引用,則它們都應該註冊爲「插件」。否則Register()方法返回false。遞歸地,我必須爲引用的程序集等註冊所有引用的程序集,因此它超過了30個,這對於我來說實例化一個小例外來說太多了。 – noober 2011-01-22 16:50:50

回答

1

我猜你可能能夠找到通過反射的類並創建它的一個實例。但是,你確定要這樣做嗎?我假設系統接口是爲了適應這些內容而構建的?

無論如何,我假設你可以訪問該類,因爲你正在被其他程序集加載。看到這個開始它:http://www.codeproject.com/KB/dotnet/Reflection.aspx

讓我知道如果你需要更多的細節。