C#怎么使用ActivatorUtilities .NET DI容器高级用法

admin 百科 15
ActivatorUtilities 是 .NET 内置轻量级对象创建辅助类,用于无完整 DI 上下文时按需解析依赖构造对象,适用于中间件、策略等局部注入场景,支持工厂预编译与临时实例创建,但不管理生命周期。

C#怎么使用ActivatorUtilities .NET DI容器高级用法-第1张图片-佛山资讯网

ActivatorUtilities 是 .NET 内置的轻量级对象创建辅助类,它不替代 IServiceProvider,而是**在没有完整 DI 容器上下文时,按需解析依赖并构造对象**。它常用于中间件、策略、工厂等需要“局部依赖注入”的场景,是 .NET DI 生态中被低估但非常实用的高级工具。

用 ActivatorUtilities.CreateFactory 创建可复用的工厂

当你需要多次创建同一类型(比如每次 HTTP 请求都 new 一个策略实例),又不想每次都走 GetService<t>()</t>,可以用 CreateFactory 预编译构造逻辑:

  • 返回的是 Func<iserviceprovider t></iserviceprovider>,性能高,支持缓存
  • 自动识别构造函数参数,支持带服务、常量、委托等混合注入
  • 适合注册到 DI 容器中作为工厂方法,或在中间件中复用

示例:

标签: 工具 c# 作用域 .net red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~