解釋: 我有一個巨大的項目,建立在一個堅實的框架,根據一些條件(簡單地說,我們可以說它是一個真/假布爾),必須連接到數據庫的函數的工作方式不同。簡單來說,當它訪問數據庫時,它可以作爲Web服務或直接的mysql連接訪問。如何根據當前項目構建調用另一個依賴項的函數的依賴項?
現在我開始創建一個Xamarin項目(android),我想導入這個框架,但是,Xamarin不支持mysql ...雖然框架可以調用web服務來獲取mysql數據, mysql代碼在那裏的事實阻止了我的xamarin項目的構建。我甚至不能使用「#if」,因爲仍然存在對mysql dll的引用。我將如何去分裂我的類的dll文件,以便這個android項目不會加載mysql dll,只是調用Web服務的函數的一部分?功能看起來像 例子:
public static void InsertStuff(object stuff, bool useDirectMysql)
{
if (useDirectMysql)//I would like that this part only appears/works if its not the xamarin project, however, i can't use #if as the framework dll still has a reference to the mysql dll
{
//MySqlConnection connection = new MySqlConnection....
//insert stuff
}
else
{
//Insert stuff with a web service function.. (compatible with xamarin)
}
}
不,@ZdravkoDanev提供了正確的方法來做到這一點......你的答案*是一種解決方法:-) – Jcl
@Jcl不,我不是。他是面向對象框架的答案,而我的大多數框架只有靜態方法。我不能做接口,不能。我確實有一些對象可以移動到另一個類中,但是,其80%的靜態類和方法使用引用。 – Zananok