5 什么是ASP.NET Core 服务
我们将创建一个ASP.NET Core 服务来统计应用程序注册用户的总数,在应用程序根目录下创建一个Services文件夹,在这个文件中创建一个TotalUsers.cs类,在类中添加如下代码:
namespace AspNetCore.Configuration.Services
{
public class TotalUsers
{
public long TUsers()
{
Random rnd = new Random();
return rnd.Next(100, int.MaxValue);
}
}
}
TUsers()方法返回应用程序注册用户的总人数,我们用随机数来生成最小值为100,最大值为int类型的最大值
接下来我们在应用程序中注册这个类以至于ASP.NET Core能在应用程序中使用这个类
using AspNetCore.Configuration.Services;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();
builder.Services.AddSingleton<TotalUsers>();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
builder.Services.AddSingleton<TotalUsers>()代码添加服务,在整个应用程序中共享该服务,接下来我们将这个服务注入到控制器并且在浏览器中显示用户总数
使用依赖注入特性我们可以在控制器中使用服务,我们可以通过控制器的构造函数注入服务的对象,在下面的代码中我创建了一个HomeController的构造函数并且在构造函数中添加了一个TotalUsers的参数
我们刚才已经在Program类中注册了TotalUsers类因此依赖注入特性会自动为构造函数的参数提供TotalUsers实例并且进行赋值
在HomeController中添加如下代码
using AspNetCore.Configuration.Services;
using Microsoft.AspNetCore.Mvc;
namespace AspNetCore.Configuration.Controllers
{
public class HomeController : Controller
{
private TotalUsers _totalUsers;
public HomeController(TotalUsers totalUsers)
{
_totalUsers = totalUsers;
}
public string Index()
{
return "总用户人数是" + _totalUsers.TUsers();
}
}
}
接下来在应用程序的根目录下创建一个Views文件夹,在Views文件夹内创建一个Home文件夹
现在在Views->Home文件夹下创建一个Index.cshtml的空Razor视图,添加下面代码
@model string
@Model
现在我们看到应用程序可以工作,我们最开始的空模板,创建Service->Controller->View,这对于我们来说是个很好的学习经验,下一节我们将讨论中间件
总结
这节我们主要介绍了ASP.NET Core服务
源代码地址
https://github.com/bingbing-gui/Asp.Net-Core-Skill/tree/master/Fundamentals/AspNetCore.Configuration/AspNetCore.Configuration