2017-09-28 84 views
3

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

当以下面的方式(类似于城堡温莎)我得到一个注册我的类型“System.InvalidOperationException:检测到循环依赖”错误上解决IMyService类型:

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

装饰登记不看起来是支持的,但是有什么方法可以增加支持或解决问题吗?

+2

请参阅:https://github.com/aspnet/DependencyInjection/issues/340 – Steven

+0

@Steven谢谢,这篇文章帮助了很多。 – nashwan

回答

2

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

装饰是在命名空间的扩展方法:在Scrutor项目中Microsoft.Extensions.DependencyInjection.ServiceCollectionExtensions。

+0

装饰不是Microsoft提供的方法。 – Steven

+0

@Steven是的,我忘了提及Scrutor。发现得好。 – nashwan

相关问题