开发学院

您的位置:首页>教程>正文

教程正文

.NET Core 可移植类库

  在这一章中,我们将讨论什么是PCL (可移植类库),以及为什么我们需要PCL。为了理解这个概念,让我们打开上一章创建的类库项目文件夹。

什么是PCL

  现在让我们了解什么是PCL

  •   可移植类库项目使您能够编写和构建在多个.net框架平台上工作的托管程序集。

  •   您可以创建包含希望在许多项目中共享的代码的类,例如共享业务逻辑,然后在不同类型项目中的引用它。

  •   PCL还可以帮助您快速轻松地为Microsoft平台构建跨平台应用程序和库。

  •   可移植类库可以帮助您减少开发和测试代码的时间和成本。

  •   使用此项目类型编写和构建可移植的.NET框架程序集,然后从针对多个平台(如Windows和Windows Phone等)的应用程序中引用这些程序集。

  备注:Visual Studio 2017开始就不叫可可移植类库了,改名叫.net标准类库,所在Visual Studio 2017中直接创建.net标准类库即可,下面是 Visual Studio 2015的操作方法,如果你使用Visual Studio 2017可以直接忽略下面的内容,直接看后面的“添加StringLib类”部分。

  现在,让我们从解决方案资源管理器中删除我们创建的类库。同时,将其从“解决方案”文件夹中删除,并进一步添加新的项目项。

remove.jpg

  在左窗格中选择Visual C# → Windows模板,并在中间窗格中选择类库(可移植)。

  在名称字段中输入StringLibrary,然后单击确定创建此项目。

stringlibrary.jpg

  现在我们需要选择要引用的目标框架。让我们选择Windows Universal和ASP.NET Core,单击确定。

retarget.jpg

  你可以看到它已经创建了一个PCF格式的新项目。现在让我们在解决方案资源管理器中右键单击StringLibrary项目,然后选择属性。

properties.jpg

  点击目标.NET标准平台,弹出的提示框单击确认。

target.jpg

  它现在是同一个类库,只有一个小区别。不同之处在于,UWP也可以使用它,因为它包含*.csproj文件。

class_library.jpg


添加StringLib类

  现在让我们添加一个新类;为此,您需要右键单击解决方案资源管理器中的项目,然后选择添加→类...

add_new_class.jpg

  在中间窗格中选择类,在名称字段中输入StringLib.cs,然后单击添加。一旦添加了类,然后替换StringLib.cs文件中的以下代码。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
  
namespace StringLibrary { 
   public static class StringLib { 
      public static bool StartsWithUpper(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
            return false; 
         Char ch = str[0]; 
         return Char.IsUpper(ch); 
      } 
      public static bool StartsWithLower(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
            return false; 
         Char ch = str[0]; 
         return Char.IsLower(ch); 
      } 
      public static bool StartsWithNumber(this String str) { 
         if (String.IsNullOrWhiteSpace(str)) 
            return false; 
         Char ch = str[0]; 
         return Char.IsNumber(ch); 
      } 
   } 
}

  让我们构建这个可移植类库项目,它应该可以编译而不会出错。现在,我们需要在我们的控制台项目中添加这个便携式类库的引用。因此,展开FirstApp,右键单击引用并选择添加引用…

references.jpg

  在“引用管理器”对话框中,选择StringLibrary,这是我们的可移植类库项目,然后单击“确定”。

library_project.jpg

  你可以看到StringLibrary引用被添加到控制台项目中,它也可以在project.json文件中看到。

  现在,您可以再次运行应用程序,您将看到相同的输出:

run_application.jpg