如何使用Microsoft.Extensions.DependencyInjection注册decorator ?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (602)

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

当以下方式注册我的类型时(类似于CastleWindsor),我会得到一个"System.InvalidOperationException : A circular dependency was detected"的错误,用于解析IMyService类型:

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

decorator注册似乎不支持框外,但有任何方法来增加支持或规避问题?

提问于
用户回答回答于

使用Scrutor(https://github.com/khellang/Scrutor)的以下列方式注册似乎可以让decorator正确解析:

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

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

所属标签

可能回答问题的人

  • Hanzo

    6 粉丝0 提问7 回答
  • Richel

    9 粉丝0 提问3 回答
  • 用户3845578

    杭州吱吱吱科技 · 站长 (已认证)

    1 粉丝0 提问2 回答
  • mariolu

    31 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券