2017-09-28 119 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

相關問題