ASP.NET Core 依賴注入:手動解析 ConfigureServices()
掌握 ASP.NET Core MVC 的依賴注入系統中的手動實例解析,特別是在 ConfigureServices()
方法中,可以提供對服務管理的精細控制。雖然 IServiceCollection
簡化了服務註冊(例如,使用 AddTransient
),但它不直接支援實例解析。 本文探討了在不依賴建構函式註入的情況下解析實例的技術。
在ConfigureServices()
內直接解決並不簡單。 IServiceCollection
提供了 BuildServiceProvider()
方法來建立臨時 IServiceProvider
。這允許存取在呼叫BuildServiceProvider()
之前註冊的服務,但不允許存取隨後註冊的服務。 理解這一限制至關重要。
另一種方法是鏡像選項模式的功能,涉及將配置值直接綁定到實例。 這可以使用 Bind()
部分中的 IConfiguration
方法來實現。 例如,您可以將 IConfiguration
中的值綁定到 MyOptions
.
需要強調的是,解析 ConfigureServices()
內的服務通常構成一種反模式,通常稱為「服務定位器」模式。 通常不鼓勵這種做法。然而,特定場景,特別是在框架或基礎設施元件內,可能需要這種方法。 使用此方法前應仔細考慮。
以上是如何手動解析 ASP.NET Core 的「ConfigureServices()」方法中的實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!