.NET CORE如何更改已注册服务的生命周期?

前言

我们知道在 ASP.NET Core 中,内置了一个依赖注入容器,可用于注册和解析服务。

在注册服务时,我们需要指定服务的生命周期:

  • Transient:每次请求服务时都会创建一个新的实例。

  • Scoped:每次请求服务时都会创建一个新的实例,但在同一个请求内,每次请求服务时都会使用同一个实例。

  • Singleton:每次请求服务时都会使用同一个实例。

    阅读剩余部分

玩转浏览器自动化(3)Playwright 定位元素

在上一章中,我们已经介绍了如何使用 Playwright 来获取浏览器中的页面。然而,一张典型的网页中包含了众多的视觉元素,例如输入框、按钮、图片和文字链接等等。

为了使用 Playwright 自动地操作浏览器,我们需要告诉它如何以编程的方式在 Web 页面上找到特定的元素或一组元素,并模拟用户对这些元素的操作。

阅读剩余部分

玩转浏览器自动化(2)Playwright 基本概念

在 Playwright 中,我们可以清晰地映射出浏览器的各个部分,例如浏览器、页面等等。这些都是 Playwright 的基本概念,我们需要深入了解这些概念,才能更加高效地使用 Playwright。

Browser(浏览器)

在 Playwright 中,Browser 代表着一个浏览器实例。为了创建浏览器实例,我们可以使用 playwright.[BrowserType],其中 BrowserType 可以是 Chromium、Firefox 或者 Webkit。比如下面的代码:

阅读剩余部分

ASP.NET Core Web API 中间件,实现速率限制无痛接入

什么是速率限制?

速率限制是一个用于控制特定资源在一段时间内允许的请求次数的功能。

在 .NET 7 中,我们可以使用内置的速率限制器中间件来配置与速率限制相关的设置。

那为什么要限制速率呢?

首先,通过限制网络流量,我们可以帮助降低服务器和网络资源使用成本。

阅读剩余部分