특정 작업에 두 개의 내부 "시퀀서"가 필요한 ASP.NET 코어 프로젝트가 있습니다. Startup.cs ConfigureServices 방법에서동일한 인터페이스를 구현하는 두 개의 싱글 톤 서비스를 만듭니다.
:
services.AddSingleton<ISequencer, ProfileSequencer>();
을 물론 나는 인터페이스와 구현이 정의되어, 그것은 잘 작동하고 첫 번째는 다음과 같이 구현되었다. 그러나 동일한 인터페이스를 구현하지만 약간 다른 구현을 가진 두 번째 시퀀서를 추가하는 방법을 잘 모르겠습니다.
services.AddSingleton<ISequencer, ChargeSequencer>();
ASP.NET은 이것에 대해 불평하지 않습니다,하지만 난 내 수업에 ISequencer를 주입 할 때 지금, 나는 그것을 사용하는 싱글 알고있는 방법을 상상할 수 없다. 나는 두 번째 싱글 톤이 첫 번째 싱글 톤을 효과적으로 대체한다고 의심한다.
여기에는 잘못된 디자인 결정이있을 수 있으므로 동일한 인터페이스를 구현하는 두 개의 서로 다른 싱글 톤을 주입 할 수있는 방법이나 필요하다면이 문제에 대한 또 다른 합리적인 방법을 설명하는 대답을 수락하겠습니다. 감사!
http://stackoverflow.com/questions/39174989/how-to-register-multiple-implementations-of-the-same-interface-in-asp-net-core 중복 가능성 –
링크 주셔서 감사합니다. 본질적으로 중복이다. 다른 서비스 유형에 대한 다른 솔루션을 찾았 기 때문에 싱글 톤 구현에 대한 내 검색어에서 끊겼습니다. – k3davis