gpt4 book ai didi

dependency-injection - 如何使用 Microsoft.Extensions.DependencyInjection 注册装饰器?

转载 作者:行者123 更新时间:2023-12-04 00:15:02 24 4
gpt4 key购买 nike

使用 Microsoft.Extensions.DependencyInjection 作为容器时如何注册装饰器类?

当以下列方式注册我的类型时(类似于 CaSTLe Windsor),我在解析 IMyService 类型时收到“System.InvalidOperationException:检测到循环依赖”错误:

services.AddSingleton<IMyService, MyService>();
services.AddSingleton<IMyService, MyServiceDecorator>();

装饰器注册似乎不支持开箱即用,但有什么方法可以添加支持或解决问题吗?

最佳答案

使用Scrutor通过以下方式注册项目似乎让装饰器正确解析:

services.AddSingleton<IMyService, MyService>();
services.Decorate<IMyService, MyServiceDecorator>();

Decorate 是命名空间中的一个扩展方法:Scrutor 项目中的 Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions。

关于dependency-injection - 如何使用 Microsoft.Extensions.DependencyInjection 注册装饰器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470360/

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