参数中的 [FromServices] 是什么意思?

What does [FromServices] as in parameter imply?

我最近更换了工作部门,在 Java 工作了 5 年后,我突然陷入了 C# 代码。现在大部分都类似于Java,但似乎有更多的DI在进行。

代码是 ASPNet 核心项目的一部分,有一件事我不明白。 控制器 class 大约有 10 000 行代码,其中包含许多具有以下“输入参数”的方法:

StreamingUploadMapper(
    [FromServices] EsiDecryptClient esiDecryptClient,
    [FromServices] IStorageHandler storageHandler)

我的问题是这是什么?它是自动注入 (DI) 还是我必须在发出请求时发送这些参数? 我也用谷歌搜索 FromServices 似乎它用于 DI 以避免使用“新”?

除此之外,我什至不明白它的用途。

My question is what is this? Is it auto injected (DI)

是的,就是这样。当您只想对特定操作而不是整个控制器注入服务时,可以使用 [FromServices]。在 10k LOC 控制器上,这种情况很有意义(尽管我很惊讶 DI 与这样的野兽一起使用)。