确定支持的ASP.NET Core版本
1、遵循支持策略:ASP.NET Core遵循.NET Core的支持策略,在确定类库中要支持的ASP.NET Core版本时,应努力支持所有分类为长期支持(LTS)的版本,无需支持已列为“生命周期结束”(EOL)的版本。
2、关注预览版变更:由于ASP.NET Core预览版可能会推出中断性变更,开发者可以在开发框架功能时对库进行兼容性测试。
使用ASP.NET Core共享框架
1、引用方式变化:从.NET Core 3.0开始,许多ASP.NET Core程序集不再作为包发布到NuGet,而是包含在Microsoft.AspNetCore.App共享框架中,该框架随.NET Core SDK和运行时安装程序一起安装,若要查看不再发布的包列表,可参阅相关文档。
2、项目文件配置:使用Microsoft.NET.Sdk.Web MSBuild SDK的项目会隐式引用共享框架;而使用Microsoft.NET.Sdk或Microsoft.NET.Sdk.Razor SDK的项目,则需在项目文件中添加对ASP.NET Core的框架引用,以在共享框架中使用ASP.NET核心API。
支持Blazor扩展性
1、服务器端和客户端应用:Blazor支持为服务器端和客户端应用创建Razor组件类库,若类库要支持Razor组件,必须使用Microsoft.NET.Sdk.Razor SDK。
2、Visual Studio Code/.NET CLI操作:使用Razor类库项目模板时,不要选中“支持页面和视图”复选框,否则类库将仅支持服务器端应用,要在编辑器中进行相关设置,如定位当前的.NET框架、启用浏览器兼容性检查、添加对Microsoft.AspNetCore.Components.Web的NuGet包引用等。
3、支持多个框架版本:如果库需要支持当前版本向Blazor添加的功能,同时还要支持一个或多个早期版本,可以让库面向多个目标,在TargetFrameworks MSBuild属性中提供以分号分隔的目标框架名字对象(TFM)列表。
4、仅支持服务器端使用:若类库仅需要特定于服务器端的功能,如访问CircuitHandler或Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage,或使用特定于ASP.NET Core的功能,如中间件、MVC控制器或Razor Pages,可通过以下方法实现:使用“支持页面和视图”复选框(Visual Studio)或使用dotnet new命令搭配-s|–support-pages-and-views选项创建库时,指定库支持页面和视图;或者仅提供对库项目文件中ASP.NET Core的框架引用以及对任何其他必需的MS生成属性的框架引用。
包括MVC扩展性
1、Razor视图或Razor页面:包括Razor视图或Razor页面的项目必须使用Microsoft.NET.Sdk.Razor SDK,如果项目面向.NET Core 3.x,则需要将AddRazorSupportForMvc MSBuild属性设置为true,并具有针对共享框架的<FrameworkReference>元素,Razor类库项目模板满足针对.NET Core的项目的上述要求。
API调用步骤
1、引用类库:这是调用API的首要步骤,确保能访问所需的类和方法,引用类库有两种主要方法,一是使用NuGet包管理器,在Visual Studio中可通过“工具”菜单选择“NuGet包管理器”,再点击“包管理器控制台”,然后在控制台中输入命令安装所需类库,安装完成后可在代码中使用using语句引用;二是手动添加引用,对于本地的DLL文件或其他形式的类库,可在解决方案资源管理器中右键点击项目名称,选择“添加引用”,然后浏览并选择DLL文件。
2、创建对象:引用类库后,需创建类库中的对象来调用其方法,常见的创建对象方式有使用构造函数和使用静态方法,使用构造函数是最常见的方式,即通过new关键字创建类的实例;有些类库提供了静态方法,可直接通过类名调用,无需创建对象。
3、调用方法:创建对象后,可调用其方法,包括实例方法和静态方法,实例方法需通过对象实例来调用,静态方法可直接通过类名调用。
4、处理异常:在调用类库的API时,处理异常是确保代码健壮性的重要步骤,常见的异常处理方法有使用try-catch语句和使用finally语句,try-catch语句用于捕获和处理异常,finally语句则用于在异常处理后执行一些清理工作。
常见问题及解答
1、如何判断一个类是否实现了特定的接口?
可以通过反射来实现,在.NET中,可以使用Type类的IsAssignableFrom方法来判断一个类型是否实现了特定的接口,要判断一个类型typeInfo是否实现了IApplicationService接口,可以使用typeof(IApplicationService).IsAssignableFrom(typeInfo),如果是,返回true;否则,返回false,这种方法在动态Web API等场景中非常有用,可以根据接口的实现情况来决定是否将某个类视为控制器等。
2、如何在ASP.NET Core项目中内嵌运行Web API?
可以通过控制台作为主程序来启动Web API,首先创建一个控制台程序和一个类库来运行Web API,在类库中创建接口和实现相关方法来运行Web API,然后在控制台程序中注册接口并调用初始化方法,需要注意的是,由于创建的Web API是类库,要想使用其中的API等,需要在项目文件中添加对Microsoft.AspNetCore.App的框架引用,以确保框架中的API版本一致。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1628102.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复