gpt4 book ai didi

ASP.Net 5 配置依赖注入(inject)和静态 Controller 构造函数

转载 作者:行者123 更新时间:2023-12-02 15:58:28 25 4
gpt4 key购买 nike

ASP.Net 5 提供 options pattern轻松将任何 POCO 类转换为设置类。使用它,我可以在 json 中编写我的设置,然后将它们转换为可以注入(inject)到我的 Controller 中的类型化对象。例如,我的 ConfigureServices Startup.cs中的方法包含行

services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

然后使用依赖注入(inject)将其传递到我的 Controller 的构造函数中

public ItemsController(IOptions<AppSettings> settings) { /* do stuff */ }

我的一个 Controller 启动了 DNN做它的一些工作。为了降低启动 DNN 的成本,我从静态类构造函数中执行此操作。静态构造函数是无参数的,因此我无法传入所需的设置对象,但我可以设置一个静态 IOptions<AppSettings>属性 ItemsController来 self 的ConfigureServices方法。我该如何做到这一点?依赖注入(inject)器在哪里以及如何说服它给我一个 IOptions<AppSettings>

最佳答案

我认为你看问题的方式是错误的。问题是你有一个静态类并且正在使用 DI,而不是如何将依赖项注入(inject)到静态类中(如果不诉诸 service locator 或其他 hack 就无法完成此操作)。 p>

大多数 DI 容器都具有单例生活方式,这允许您在应用程序中共享对象的同一实例。使用这种方法,不需要静态类。通过用单例实例替换静态类来消除静态类,您就可以将依赖项注入(inject)到构造函数中。

关于ASP.Net 5 配置依赖注入(inject)和静态 Controller 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35159341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com