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中文网其他相关文章!