ASP.NET Core应用中如何为指定类型始终注入固定实例值?
解决方案
你要的全局固定实例注入可以直接用AddSingleton的实例重载实现,代码如下:
// 先初始化好你要全局复用的ISecurityContext固定实例 ISecurityContext myFixedSecurityContext = 你的实例创建/获取逻辑; // 注册到DI容器,所有请求ISecurityContext的位置都会拿到该实例 services.AddSingleton<ISecurityContext>(myFixedSecurityContext);
注意事项
- 注册操作要放在你加载外部程序集端点的代码之前执行,避免依赖顺序错误
- 请确认你的
ISecurityContext实现是线程安全的,单例实例会被所有请求共享访问 - 该注册方式优先级高于
AddScoped/AddTransient的同接口注册,不会和其他注册逻辑冲突
你遇到的报错本质是DI容器中没有ISecurityContext对应的服务注册,无法在激活继承SecureEndpoint的控制器时注入依赖项,完成上述注册后即可解决。
内容的提问来源于stack exchange,提问作者Taco
相关产品推荐
相关产品推荐

