protected override void Dispose ( bool disposing ) { if (disposing) { foreach ( var obj in factories ) { if (obj!=null) { obj.Dispose(); } } factories.Clear(); } base.Dispose( disposing ); }