We have a .NET Core application that uses dependency injection heavily. Within our class we have a raised event, however, in this event we want to make use of one of the instances of an DI object. This however doesn't exist, which is understandable.
How can we make use of this instance from within the event?
public class GetSQLDependancyHandler : IRequestHandler<SQLDependancyQuery>
{
private readonly ISqlDependancy _sqlDependancy;
private readonly IMapper _autoMapper;
private readonly IMediator _mediator;
private CancellationToken _cancellationToken;
public GetSQLDependancyHandler( IMapper autoMapper,
ISqlDependancy sqlDependancy,
IMediator mediator)
{
_autoMapper = autoMapper;
_sqlDependancy = sqlDependancy;
_mediator = mediator;
}
public async Task<Unit> Handle(SQLDependancyQuery request, CancellationToken cancellationToken)
{
await _sqlDependancy.IngnightSQLDependancy("ObservationAdmission", "ServiceBroker");
_sqlDependancy.OnTableUpdate += _sqlDependancy_OnTableUpdate1;
_cancellationToken = cancellationToken;
return Unit.Value;
}
private void _sqlDependancy_OnTableUpdate1(object sender, BroadCast e)
{
// THIS IS THE PART THAT DOESN'T EXIST
_mediator.Publish(new SQLDependancyDTO { Id = 1, Date = DateTime.Now, Message = "testmessage" }, _cancellationToken);
}
}
Any advice or where I should be looking would be greatly appreciated.