public void Eject(Type pluginType, Instance instance)
{
int key = instance.InstanceKey(pluginType);
_lock.MaybeWrite(() => {
if (!_objects.ContainsKey(key)) return;
_lock.Write(() => {
var disposable = _objects[key] as IDisposable;
_objects.Remove(key);
disposable.SafeDispose();
});
});
}