У меня есть приложение Prism
, с Unity
для внедрения зависимостей.
У меня есть один класс со следующим наследованием:
ISomeService --> ISomeMoreSpecializedService --> SomeMoreSpecializedService
ISomeService
используется в некоторых модулях, не относящихся к приложениям. ISomeMoreSpecializedService
расширяет этот предыдущий интерфейс, добавляя некоторую концепцию, специфичную для приложений SomeMoreSpecializedService
- единственная реализация, которая должнаиспользоваться в определенном программном обеспечении - (есть также абстрактная реализация ISomeService)
Мой специализированный сервис выглядит так:
public class SomeMoreSpecializedService : SomeService, ISomeMoreSpecializedService
{
public SomeMoreSpecializedService(ISomeDependency dependency){
}
}
Яв модуле Prism:
public class MyModule : IModule
{
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<ISomeService, SomeMoreSpecializedService>();
containerRegistry.RegisterSingleton<ISomeMoreSpecializedService, SomeMoreSpecializedService>();
}
public void OnInitialized(IContainerProvider containerProvider)
{
}
}
Но моя проблема в том, что я получаю тогда 2 разных синглтона.Как мне это сделать?
До того, как я построил new SomeMoreSpecializedService()
, а затем делал RegisterInstance
.Это работало до сих пор, но теперь у меня есть некоторая зависимость для инъекций.