Ecco un'astrazione di servizio su cui sto lavorando:
public abstract class Service
{
public ILogger Logger{get;set;}
public IQueryManager QueryManager{get;set;}
public ICommandManager CommandManager{get;set;}
}
Quindi devo chiamarli come al solito nella mia classe:
Logger.Log("Something");
QueryManager.Query(new QueryObject()).Result;
etc.
Ma mi piacerebbe avere alcuni metodi di supporto protetti per rendere queste frasi meno dettagliate:
Log("Something");\calls Logger.Log("Something")
Query(new QueryObject()); \ returns QueryManager(new QueryObject()).Result
Esiste un modo per implementare le mie dipendenze in modo che vengano nascoste ai figli del servizio? Esiste un contenitore IoC che mi consente di utilizzare proprietà private per iniettare le mie dipendenze?