У меня есть 2 службы: IDbStorage для операций с базой данных и управление исключениями IExceptionManager.Сам класс ExceptionManager опирается на экземпляр IDbStorage:
public class ExceptionManager : IExceptionManager
{
private IDbStorage _CurrentDbStorage;
public IDbStorage CurrentDbStorage
{
get { return _CurrentDbStorage; }
}
public ExceptionManager(IDbStorage currentDbStorage)
{
_CurrentDbStorage = currentDbStorage;
}
}
При запуске я объявляю:
services.AddTransient<IDbStorage, OracleDbStorage>();
services.AddTransient<IExceptionManager, ExceptionManager>();
Во всех контроллерах я использовал обе службы.Например:
public abstract class BusinessObjectManagementController<T1> : ControllerBase where T1 : BusinessObject
{
private IDbStorage _CurrentDbStorage;
public IDbStorage CurrentDbStorage
{
get { return _CurrentDbStorage; }
}
private IExceptionManager _CurrentExceptionMgr;
public IExceptionManager CurrentExceptionMgr
{
get { return _CurrentExceptionMgr; }
}
public BusinessObjectManagementController(IDbStorage currentDbStorage, IExceptionManager currentExceptionMgr)
{
_CurrentDbStorage = currentDbStorage;
_CurrentExceptionMgr = currentExceptionMgr;
}
}
Все отлично работает, однако я не уверен, что тот же экземпляр IDbStorage внедрен в CurrentExceptionMgr или создан новый?
Спасибо.