2013-07-08 69 views
0

我想知道如果有一種方法來強制MS VS 2010的C#編譯我製作的節目,因爲我有2個DLL文件具有相同名稱與使用,使用匯編解決我能夠互換等,但事情是兩個DLL有不同的方法,並根據我給它會執行獨特的方法的dll有水平。我可以使用動態類型,但有什麼其他方式可以告訴MS vs 2010在發生錯誤時強制編譯?C#力編譯有錯誤的程序,忽略錯誤

說說dll1有方法A和dll2有方法B,編碼時我說if(condition) classname.A else classname.B,但是隻引用dll1,使得使用classname.B出錯。那麼我該如何強制編譯呢?或者我只是繼續使用動態類型?

+1

你有什麼期望編譯器,當你告訴它來編譯的東西,它不明白嗎? –

回答

1

不,你不能強迫有錯誤的編譯。某種動態方法是你唯一的方法,例如反射或dynamic關鍵字。

0

這種做法真是 「smells」。首先,不,你不能忽視那樣的錯誤。

有這麼多的方法,這將是比較合理的。僅舉幾例:使用dynamic,有兩個DLL1 classname和DLL 2來自同一個基類派生或實現相同的接口,使用類似MEF

其中一些可能是矯枉過正的解決方案。我只是想知道,也許你問我們如何解決的症狀,而不是問我們這個問題的實際根源的幫助。

0

因爲即使類在A.DLL和B.DLL相同的名稱,它仍然是不一樣的類這是不可能的。所以,即使你以某種方式設法編譯它,並將dll切換出來,該程序仍然可能會崩潰。

正如其他人所說,使用動態或反射。