.NET Standard 類庫的使用技巧
在前一篇博客《.NET Standard中配置TargetFrameworks輸出多版本類庫》中詳細(xì)介紹了如何創(chuàng)建、配置、條件編譯、引用本地程序集、NuGet方式引用程序集、XML文檔輸出、編碼與DEBUG 調(diào)試、自動(dòng)生成內(nèi)部版本號、文件復(fù)制等功能。但是Visual Studio中也存在一些使用不方便的地方,本文介紹一些開發(fā)中的小技巧。
一、API適配.NET版本提示
高版本的 Visual Studio 足夠智能,能針對不同的API及時(shí)給出提示,指出API適用于哪種版本的.NET。比如下圖中使用的 fileStream.WriteAsync()方法是異步方法,只在.NET4.5及.NET Standard2.0中受支持,在.NET4.0中沒有異步方法,只有對應(yīng)的 fileStream.Write()同步方法。

?
將代碼修改為如下格式即可實(shí)現(xiàn)多版本

?所以在編寫代碼時(shí),建議在項(xiàng)目文件.csproj文件中做如下配置:
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net45;net40TargetFrameworks>
PropertyGroup>
也就是將 netstandard2.0 放置在第一個(gè)位置,因?yàn)樵赩S中編寫代碼時(shí)當(dāng)前編輯器環(huán)境是針對放置在第一個(gè)位置的.NET版本。
二、.NET 目標(biāo)框架切換
.NET Standard 類庫配置多目標(biāo)框架后,添加引用時(shí)無法自動(dòng)切換版本,必須手動(dòng)調(diào)整配置順序才可以。
<PropertyGroup>
<TargetFrameworks>net40;net45;netstandard2.0;TargetFrameworks>
PropertyGroup>
但是在編碼時(shí)提供了目標(biāo)框架切換的功能,這個(gè)是非常實(shí)用且方便的功能。我做的BIMFACE二次開發(fā)的接口的目標(biāo)是支持 .NET Framework4.0、.NET Framework4.5 以及 .NET Core版本。將鼠標(biāo)放到代碼編輯器界面左上角,自動(dòng)給出提示“實(shí)用下拉列表可查看和切換到此文件所屬的其他項(xiàng)目”

下拉框的選項(xiàng)內(nèi)容是?
?
此功能可以判斷相同的代碼在哪些框架下受支持且能正確編譯。比如我再LogUtils類中寫了一個(gè)異步記錄日志的方法,當(dāng)切換到 .NET Standard 2.0 或者 .NET 4.5時(shí)編輯器沒有給出錯(cuò)誤的提示,說明代碼在這兩種框架下是受支持的。


當(dāng)切換到 .NET4.0 時(shí),VS中自動(dòng)給出了錯(cuò)誤提示信息

此時(shí)就可以使用條件編譯符號來解決此問題

?
出處:http://www.cnblogs.com/SavionZhang作者:張傳寧 微軟MCP、系統(tǒng)集成項(xiàng)目管理工程師、科技部創(chuàng)新工程師專注于微軟.NET技術(shù)(.NET Core、Web、MVC、WinForm、WPF)、通用權(quán)限管理系統(tǒng)、工作流引擎、自動(dòng)化項(xiàng)目(代碼)生成器、SOA 、DDD等技術(shù);PDF、CAD、BIM 審圖等研究與應(yīng)用。多次參與電子政務(wù)、國家電網(wǎng)、圖書教育、生產(chǎn)制造等企業(yè)級大型項(xiàng)目研發(fā)與管理工作。熟悉中小企業(yè)軟件開發(fā)過程:需求分析、架構(gòu)設(shè)計(jì)、編碼測試、實(shí)施部署、項(xiàng)目管理。通過技術(shù)與管理幫助中小企業(yè)快速化實(shí)現(xiàn)互聯(lián)網(wǎng)技術(shù)全流程解決方案。本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。如有問題,可以通過郵件[email protected]聯(lián)系。歡迎加入下列產(chǎn)品技術(shù)支持群,共同交流、互相學(xué)習(xí)。BIMFACE C自動(dòng)化項(xiàng)目代碼生成器 QQ技術(shù)支持群:427789286
