Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / Utils / DisposableCollectionWrapper.cs / 1305376 / DisposableCollectionWrapper.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace System.Data.Common.Utils { internal class DisposableCollectionWrapper: IDisposable, IEnumerable where T : IDisposable { IEnumerable _enumerable; internal DisposableCollectionWrapper(IEnumerable enumerable) { Debug.Assert(enumerable != null, "don't pass in a null enumerable"); _enumerable = enumerable; } public void Dispose() { // Technically, calling GC.SuppressFinalize is not required because the class does not // have a finalizer, but it does no harm, protects against the case where a finalizer is added // in the future, and prevents an FxCop warning. GC.SuppressFinalize(this); if(_enumerable != null) { foreach(T item in _enumerable) { if(item != null) { item.Dispose(); } } } } public IEnumerator GetEnumerator() { return _enumerable.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return ((System.Collections.IEnumerable)_enumerable).GetEnumerator(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace System.Data.Common.Utils { internal class DisposableCollectionWrapper: IDisposable, IEnumerable where T : IDisposable { IEnumerable _enumerable; internal DisposableCollectionWrapper(IEnumerable enumerable) { Debug.Assert(enumerable != null, "don't pass in a null enumerable"); _enumerable = enumerable; } public void Dispose() { // Technically, calling GC.SuppressFinalize is not required because the class does not // have a finalizer, but it does no harm, protects against the case where a finalizer is added // in the future, and prevents an FxCop warning. GC.SuppressFinalize(this); if(_enumerable != null) { foreach(T item in _enumerable) { if(item != null) { item.Dispose(); } } } } public IEnumerator GetEnumerator() { return _enumerable.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return ((System.Collections.IEnumerable)_enumerable).GetEnumerator(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectDataSourceMethodEventArgs.cs
- ProxyWebPartConnectionCollection.cs
- StreamingContext.cs
- OleDbSchemaGuid.cs
- X509RecipientCertificateClientElement.cs
- CellTreeNode.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- PageTheme.cs
- SkinBuilder.cs
- ValidationErrorCollection.cs
- UiaCoreProviderApi.cs
- SqlCacheDependency.cs
- PrintPageEvent.cs
- XmlCollation.cs
- CompModHelpers.cs
- ModelPerspective.cs
- SoundPlayer.cs
- PKCS1MaskGenerationMethod.cs
- PageSettings.cs
- OdbcConnectionStringbuilder.cs
- ConfigurationProperty.cs
- WmfPlaceableFileHeader.cs
- XmlSchemaImporter.cs
- FrameworkContentElement.cs
- PeerEndPoint.cs
- WebDisplayNameAttribute.cs
- LayoutInformation.cs
- PointConverter.cs
- EDesignUtil.cs
- HashCryptoHandle.cs
- TextBlock.cs
- SecurityException.cs
- CounterSampleCalculator.cs
- RadioButton.cs
- ColorMap.cs
- wgx_exports.cs
- WebPartConnection.cs
- SqlVisitor.cs
- CheckBoxPopupAdapter.cs
- ExceptionAggregator.cs
- DocumentXmlWriter.cs
- XmlDataCollection.cs
- AttributeCollection.cs
- IdentityHolder.cs
- ColumnHeaderConverter.cs
- DBPropSet.cs
- SecurityDocument.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- TemplateNodeContextMenu.cs
- HttpClientCertificate.cs
- BufferAllocator.cs
- HttpHandlerAction.cs
- PageVisual.cs
- SqlCharStream.cs
- Fault.cs
- BufferedReceiveElement.cs
- ModulesEntry.cs
- SqlTypeSystemProvider.cs
- XhtmlBasicObjectListAdapter.cs
- XmlBoundElement.cs
- DataViewManagerListItemTypeDescriptor.cs
- BufferedStream.cs
- InboundActivityHelper.cs
- WindowsImpersonationContext.cs
- EdmError.cs
- WindowsAuthenticationEventArgs.cs
- regiisutil.cs
- StorageMappingItemCollection.cs
- MemoryFailPoint.cs
- panel.cs
- CoTaskMemHandle.cs
- EventSchemaTraceListener.cs
- ComponentDispatcherThread.cs
- SystemWebCachingSectionGroup.cs
- WmlTextViewAdapter.cs
- ExpressionConverter.cs
- DataTemplateSelector.cs
- FixedHighlight.cs
- MailMessageEventArgs.cs
- WeakReference.cs
- LineServicesRun.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- PluralizationService.cs
- QuestionEventArgs.cs
- ContextMenuAutomationPeer.cs
- ObjectSecurityT.cs
- ActiveXContainer.cs
- ComPlusTraceRecord.cs
- DefaultValueMapping.cs
- Model3D.cs
- DataSourceCacheDurationConverter.cs
- ActivityBindForm.cs
- QueryContinueDragEvent.cs
- Pair.cs
- TemplatedWizardStep.cs
- NullReferenceException.cs
- DesignerLoader.cs
- MatrixTransform3D.cs
- CodeObject.cs
- CharAnimationUsingKeyFrames.cs