ZetCode

ASP.NET AddSingleton

最后修改于 2025 年 4 月 3 日

在本文中,我们将探讨 ASP.NET 8 中的 AddSingleton 方法。此方法对于依赖注入和服务生存期管理至关重要。

ASP.NET 是一个跨平台、高性能的框架,用于构建现代 Web 应用程序。AddSingleton 方法有助于管理服务实例。

基本定义

AddSingleton 是 ASP.NET Core 依赖注入系统中的一个方法。它在服务容器中注册一个具有单例生存期的服务。

单例服务仅创建一次,并在应用程序的整个生存期内共享。对该服务的任何请求都将获得相同的实例。

这对于维护状态或创建成本较高的服务非常理想。AddSingleton 通常用于缓存、配置和日志服务。

ASP.NET AddSingleton 示例

以下示例演示了如何使用 AddSingleton 来实现计数器服务。

Program.cs
var builder = WebApplication.CreateBuilder(args);

// Register the CounterService as a singleton
builder.Services.AddSingleton<CounterService>();

var app = builder.Build();

app.MapGet("/", (CounterService counter) =>
{
    counter.Increment();
    return $"Counter: {counter.GetCount()}";
});

app.Run();

这会设置一个基本的 ASP.NET 应用程序,其中包含一个单例的 CounterService。该服务被注入到最小 API 端点中。

Services/CounterService.cs
public class CounterService
{
    private int _count = 0;

    public void Increment()
    {
        _count++;
    }

    public int GetCount()
    {
        return _count;
    }
}

CounterService 维护一个简单的计数器。对根端点 ("/") 的每次请求都会递增并返回当前计数。

由于它被注册为单例,因此所有请求都使用相同的实例。计数器值在请求之间保持不变。

要测试这一点,请运行应用程序并多次刷新页面。您会看到每次刷新时计数器都会递增,这演示了单例行为。

来源

Microsoft ASP.NET 依赖注入文档

在本文中,我们探讨了 ASP.NET 8 中的 AddSingleton 方法。这项强大的功能有助于在您的应用程序中高效地管理服务实例。

作者

我的名字是 Jan Bodnar,我是一名充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教学编程方面拥有十多年的经验。

列出所有 ASP.NET 教程