导航菜单

软件工程/服务与中间件
课程进度 55% · 第6/10章6/10章 · 标签 1/2
1

依赖注入(DI)

ASP.NET Core内置依赖注入容器,支持三种生命周期:Singleton、Scoped、Transient。

csharp
1
// 注册服务
2
builder.Services.AddScoped<IUserService, UserService>();
3
builder.Services.AddSingleton<ICacheService, CacheService>();
4
builder.Services.AddTransient<IEmailService, EmailService>();
5
 
6
// 使用依赖注入
7
public class UserController : ControllerBase {
8
private readonly IUserService _userService;
9
 
10
public UserController(IUserService userService) {
11
_userService = userService;
12
}
13
}

📖Scoped:每个HTTP请求一个实例。Singleton:全局唯一。Transient:每次注入都创建新实例

2

配置与日志

.NET提供了强大的配置系统和日志框架,支持多种配置源和日志输出目标。

csharp
1
// 读取配置
2
var connectionString = builder.Configuration
3
.GetConnectionString("DefaultConnection");
4
 
5
var appSettings = builder.Configuration
6
.GetSection("AppSettings")
7
.Get<AppSettings>();
8
 
9
// 日志记录
10
public class UserService {
11
private readonly ILogger<UserService> _logger;
12
 
13
public UserService(ILogger<UserService> logger) {
14
_logger = logger;
15
}
16
 
17
public void CreateUser(User user) {
18
_logger.LogInformation("Creating user: {Name}", user.Name);
19
// 业务逻辑
20
}
21
}
DIIoCSingletonScoped配置日志