protected override void Dispose(bool disposing)
{
Array.ForEach(
_cache.Values.ToArray(),
assembly=> assembly.Dispose()
);
_cache.Clear();
base.Dispose(disposing);
}