• .NET Standard 跨平台支持的实践


    .NET Standard 是为 .NET 各个版本框架的基石,提供了.NET的最基础的也是最通用的运行框架API,官网的架构图如下图所示,清晰的定义了.Net Framework 框架和.NetCore 框架的关系和血缘关系。针对通用标准组件库的开发,往往既需要对老版本Net Framework 的支持,也有有对NetCore 程序的支持。

    但是需要注意的是,.NET Standard只有2.0版本具备,2.1 后就不在支持了。如果两个版本都支持的话,需要再代码里面加入 TargetFrameworks。

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <!-- This project will output netstandard2.0 and net461 assemblies -->
        <TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
      </PropertyGroup>
    </Project>

    针对不通的环境的的特殊操作,需要使用预处理器指令,进行分类处理,

    public static class GpsLocation
    {
        // This project uses multi-targeting to expose device-specific APIs to .NET Standard.
        public static async Task<(double latitude, double longitude)> GetCoordinatesAsync()
        {
    #if NET461
            return CallDotNetFramworkApi();
    #elif WINDOWS_UWP
            return CallUwpApi();
    #else
            throw new PlatformNotSupportedException();
    #endif
        }
    
        // Allows callers to check without having to catch PlatformNotSupportedException
        // or replicating the OS check.
        public static bool IsSupported
        {
            get
            {
    #if NET461 || WINDOWS_UWP
                return true;
    #else
                return false;
    #endif
            }
        }
    }
    

      

  • 相关阅读:
    重塑矩阵
    买卖股票
    两个数组的交集
    洛谷 P3700
    HDU 6987
    Solution -「NOI 2021」「洛谷 P7740」机器人游戏
    「NOI 2021」酱油记
    Solution -「UNR #5」「UOJ #671」诡异操作
    CD from Codeforces Round #703 (Div. 2)
    CD from Codeforces Round #701 (Div. 2)
  • 原文地址:https://www.cnblogs.com/luking/p/15996348.html
Copyright © 2020-2023  润新知