我們的應用程序有幾個依賴項不可用作PCL庫(例如RestSharp,Websocket4Net,Reactive Extensions),但可用於我們計劃定位的每個平臺。在MvvmCross中處理此場景的最佳方法是什麼?什麼是最簡單的?非PCL依賴關係w/MvvmCross
回答
有多種方法可以解決這個問題。
如果問題真的很大,可以放棄PCL方法,並使用多平臺特定的類庫。這些庫可以參考MvvmCross PCLS和RestSharp等特定於平臺的版本有關親的和這個看CON的討論 - What is the advantage of using portable class libraries instead of using "Add as Link"?
在一般情況下,我現在只需要這個文件聯的方法,如果我有以包括一個非常大的遺留庫(例如,一個客戶有一個大的商業邏輯庫,與3個獨立的WCF服務交談...)
你提到的一些庫可能已經有PCL端口和/
- 無擴展有一個官方的PCL港 - 見http://blogs.msdn.com/b/rxteam/archive/2013/02/06/rx-2-1-is-here.aspx
- 對於簡單的REST調用,我們現在已經開始了,包括在網絡插件的一些功能 - 見https://github.com/slodge/MvvmCross/tree/v3/Plugins/Cirrious/Network/Cirrious.MvvmCross.Plugins.Network/Rest(警告! - 字母代碼)
許多開源作者現在提供PCL版本 - 請檢查。
您通常可以將本機庫從接口後面抽象出來,然後您可以在運行時注入該庫的正確版本。這是什麼插件內MvvmCross
做你可以看到大量的插件都建在https://github.com/slodge/MvvmCross/tree/v3/Plugins/
有此樣品中一個非常簡單的插件 - https://github.com/slodge/MvvmCross-Tutorials/tree/master/GoodVibrations
你可以使用另一種方法是提供「引用程序集' - 這些是僅包含類型和接口簽名的PCL程序集(即它們僅提供
NotImplementedException
實現)。您的PCL項目鏈接到這些程序集,而您的UI項目鏈接到真實的程序集。在構建時,您的PCL內核將根據簽名構建,但MSBuild/XBuild將確保正確的本地庫真正被拉入。我在實踐中沒有使用過這種最後一種技術。我更喜歡接口路由,因爲它導致更好的體系結構。但是,這種技術在當前的MvvmCross Nuget包中使用 - 所以我知道它的工作原理。
我們的測試人員Daniel寫了一個blog post關於如何解決這類問題。
- 1. 依賴關係的nuget依賴關係
- 2. 依賴關係
- 3. 處理JBoss Fuse中非OSGI依賴關係的傳遞依賴關係
- 4. Maven:添加非JAR依賴關係
- 5. Maven:查找非託管依賴關係
- 6. 非傳遞包依賴關係?
- 7. 紅寶石非寶石依賴關係
- 8. 從控制檯應用程序引用PCL的依賴關係
- 9. Hudson依賴關係
- 10. tools.jar依賴關係
- 11. URLClassloader依賴關係
- 12. WildFly依賴關係
- 13. flickrj依賴關係
- 14. DLL依賴關係
- 15. Python依賴關係?
- 16. Eclipse:Android依賴關係
- 17. automake依賴關係
- 18. Knockoutjs依賴關係
- 19. Maven依賴關係
- 20. asyntasks依賴關係
- 21. Webkit依賴關係
- 22. iMX31依賴關係?
- 23. Maven依賴關係
- 24. SharedPreferences依賴關係
- 25. Jira依賴關係
- 26. Scala:Spec2依賴關係
- 27. NetSSL依賴關係?
- 28. UML依賴關係
- 29. pip:安裝依賴的依賴關係
- 30. 依賴的Maven副本依賴關係