创建类库时如何选择类型

image
.NET Standard 库是一组可跨多个 .NET 平台共享使用的 API 的集合。它包含了许多常用的 .NET API,包括基本数据类型、集合、文件系统、网络、安全等方面的 API。.NET Standard 库被设计为具有高度可移植性,可以轻松地跨不同的 .NET 平台使用,并且不需要重复开发和维护多个版本的代码。

NET Standard版本对应关系

image
image

.NET Standard 库在不同的环境调用对应内库方法

1、创建一个.NET Standard 类库,添加一个简单的测试方法。

public class NetStandardTest
{
    public static void PrintLocation()
    {
        //打印FileStream 路径
        Console.WriteLine(typeof(FileStream).Assembly.Location);
        //打印NetStandardTest 路径
        Console.WriteLine(typeof(NetStandardTest).Assembly.Location);
    }
}

在这个测试方法里面我们加了两行打印代码。主要是打印FileStream路径,同时我们创建的.NET Standard类库为2.0,因为我们接下来要创建.net framework 的控制台,它不支持2.1。

2、创建.net 5,.net framework 4.6.1 控制台程序

创建好两个控制台项目,在主方法里面调用内库方法。

static void Main(string[] args)
{
    NetStandardTest.PrintLocation();

    Console.ReadKey();
}

3、运行分析
image
.net standard里面是没有实现的,只是定义了方法,也就是说定义了一种标准,说明我的类里面有哪些东西。调用的时候再根据我们当前使用的框架去找到对应框架的实现。

选择.NET Core 目标框架只能在.NET Core框架内使用

  • .NET Core 3.1 目标框架开发的类库可以在 .NET 5.0 中使用。事实上,.NET 5.0 是 .NET Core 3.1 的继承者,其 API 表面也相同。这意味着,.NET 5.0 可以兼容 .NET Core 3.1 的类库,并可以无缝迁移。
  • .NET 5.0 目标框架开发的类库无法直接在低版本的 .NET Core 上使用。这是因为 .NET 5.0 目标框架引入了一些新的 API 和功能,这些 API 和功能在旧版的 .NET Core 中并不存在。

参考

https://www.cnblogs.com/SunSpring/p/15047424.html
https://learn.microsoft.com/zh-cn/dotnet/standard/net-standard?tabs=net-standard-2-1

posted @ 2023-06-05 00:16  广州大雄  阅读(35)  评论(0编辑  收藏  举报