具體來說,我需要確定的是調用發展平臺(即.NET核心與.NET框架相對於其他),而不是操作系統的信息,我可以通過System.Environment.OperatingSystem.Platform得到。有沒有辦法做到這一點? (爲了給出我的具體用例的更多細節,我引用了一個庫 - log4net - 它通過傳遞一個XML資源來配置它。我想在可用的情況下使用它的一些可配置功能,如果可用,它們在.NET下受支持。框架,但不是在.NET的核心,我希望能夠因此將它傳遞不同版本的資源,這取決於它,我正在使用的。)我如何確定在運行時從一個.NET標準庫調用平臺?
1
A
回答
0
從運行環境解決可能被證明是不確定運行時更改。我會在應用程序運行之前強制執行該問題。如前所述,您可以通過運行時或配置它。
另一種選擇是類似SL4J提供的東西。運行時確定取決於您部署應用程序的方式。
你可以創建自己的暴露平臺的信息接口。然後,在部署時,只需將相應的程序集添加到安裝中即可。加載程序集並調用所需的方法。
或者你看微軟如何處理類似的情況在這裏:https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
0
我不得不這樣做一次。我需要一種方法來調用不同的實現。我只是用反射嘗試一個接一個的名字。
試圖檢測運行時庫是愚蠢的。直接檢測差異。它不太可能突破。
相關問題
- 1. 如何在運行時從便攜庫中確定.net平臺?
- 2. 如何確定Qt在運行時運行的平臺?
- 3. 我如何確定哪個平臺正在運行?
- 4. .NET 4.5可移植類庫:是否可以在運行時確定平臺?
- 5. 如何確定R在哪個平臺上運行?
- 6. 在運行時從庫中確定.Net Framework
- 7. 如何確定目標.NET平臺版本
- 8. .NET標準1.5 XUnit控制檯亞軍 - 如何運行我的單元測試?
- 9. 確定從多個標準
- 10. 如何創建.NET平臺標準項目
- 11. windows API,C++標準librady,VS運行時庫,我應該使用哪一個?
- 12. 平臺特定庫的運行時間還是編譯時間?
- 13. 替代SecureString的一個.NET標準庫?
- 14. 如何從Linux內核進行標準庫調用?
- 15. 如何確定當前應用程序在LibGDX上運行的平臺?
- 16. 運行指定平臺(Android或iOS)的自動化測試。每次發佈只有一個平臺。如何指定Maven必須運行哪個平臺?
- 17. 在運行時調試.net?
- 18. 如何使用xamarin我創建了一個跨平臺的庫?
- 19. 如何在運行時確定.NET listview的維度?
- 20. 如何解決這個錯誤運行一個或多個平臺,當我運行「離子運行android - 設備」
- 21. NET標準庫引用.NETCore
- 22. Xamarin.Forms - 「目標.NET平臺標準」選項不出現
- 23. 如何確定一組標準偏差
- 24. 如何在運行時使用MvvMCross檢測平臺?
- 25. 如何確定一臺機器是否正在運行Active Directory
- 26. 運輸數據庫從一個平臺到另一個平臺的Oracle數據庫
- 27. 如何指定在運行時使用哪個.NET框架
- 28. 關於一次運行多個數據庫平臺有什麼「不正確」?
- 29. 運行準確的時鐘
- 30. 如何調用一個類:perl中運行時確定的方法?
毫無疑問,.NET標準確實不會這麼做。因爲這可能會使圖書館*不*標準。如果有必要,考慮只是讓主應用程序告訴你,它知道。 –