Будет ли считаться нарушением? (DI)

Создаю для себя проект и задался вопросом: будет ли считаться следующий код нарушением какой-либо концепции?

Проект делаю с использованием prism. Есть базовый класс NavigationViewModelBase. В наследуемых классах будет использоваться IRegionManager, который я получаю через DI. Пока таких классов немного, но в будущем код разрастется. И я подумал зачем мне в каждом наследуемом классе явно указывать новое поле с IRegionManager и получать его через конструктор, если это можно сделать в базовом NavigationViewModelBase?

Примеры:

Как есть сейчас:

ViewModelA.cs

private IRegionManager _regionManager;

public ViewModelA(IRegionManager _regionManager)
{
    _regionManager = regionManager;
}

private void SomeMethod() 
{
    _regionManager.RequestNavigate("...."); 
}

Что думаю сделать:

NavigationViewModelBase.cs

protected IRegionManager RegionManager { get; }

public NavigationViewModelBase() 
{
    var container = ((PrismApplicationBase)Application.Current).Container;
    RegionManager = container.Resolve<IRegionManager>();
}

ViewModelA.cs

private void SomeMethod() 
{
    RegionManager.RequestNavigate("....");  
}

Ответы (0 шт):