In my scenario, I save the ReportSource instances in a dictionary in the custom ReportSource Resolver:
private static ConcurrentDictionary<string, EsiInstanceReportSource> _irs = new ConcurrentDictionary<string, EsiInstanceReportSource>();
However, I have no chance to delete the memory because there is no event or flag to see when it is not needed anymore.