2016-11-18 42 views
-2

您好我想創建一個NoSQL數據庫,將在Android,UWP和IOS工作,用我自己的項目,並在發佈的NuGet他人。加入平臺專有代碼到便攜式類庫

所以我需要能夠創建,刪除,寫和所有這些平臺讀取文件。

我正在尋找一種方法在PCL本身中完成此平臺特定的編碼,或者鏈接到源代碼,該源代碼解釋瞭如何製作和發佈便於使用的API或簡單地如何編寫特定於平臺的代碼便攜式課程本身。

順便說一句,我已經嘗試使用#如果UWP #ENDIF並做了一個試驗項目,但因爲它是一個便攜式類庫,它只是忽略它在運行時。

例如:

public void CreateFile(string path) { 
    if (Platform == UWP) { 

    } 
    if (Platform == Android) { 
     //Create file for UWP 
    } 
    if (Platform == IOS) { 
     //Create file for UWP 
    } 
} 

回答

4

如果你有具體代碼爲每個平臺,那麼你可以使用Bait & Switch trick執行此,那就是在許多Xamarin的插件使用的方法。

基本上,你創建了一個Abstractions項目和一個PCL的實現項目,你可以分別使用接口和類來完成調用(當然還有一個單例或者創建上述類的東西)新類())。

然後在每個特定平臺的項目要實現的抽象項目保持相同的命名空間和類的名稱作爲PCL實現中定義的一個定義的抽象,它的完成。

最後創建您的NuGet,你就可以走了。

我建議你看一下鏈接,這是詹姆斯Montemagno,並解釋這一點。

+1

非常感謝幫助它看起來像一個偉大的鏈接,我希望這將解決我的問題 – ZakFS