public override void Dispose() { foreach( object instance in instances ) { base.Release( instance ); } instances.Clear(); Thread.FreeNamedDataSlot( "CastlePerThread" ); }