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
- RuntimeTrackingProfile.cs
- HelpInfo.cs
- WebPartCatalogAddVerb.cs
- WebFaultClientMessageInspector.cs
- MetaModel.cs
- TypeInfo.cs
- LoadedEvent.cs
- EntityContainerEntitySetDefiningQuery.cs
- ThreadExceptionEvent.cs
- WebConfigurationHostFileChange.cs
- ScaleTransform3D.cs
- StyleSheet.cs
- SafeHandles.cs
- ObjectSet.cs
- WmlListAdapter.cs
- CellPartitioner.cs
- SerializationStore.cs
- FilterException.cs
- FunctionMappingTranslator.cs
- SqlCacheDependencySection.cs
- BStrWrapper.cs
- InvalidComObjectException.cs
- DataServiceConfiguration.cs
- Timeline.cs
- MetadataArtifactLoaderComposite.cs
- EventEntry.cs
- Int64AnimationBase.cs
- LinqDataSourceSelectEventArgs.cs
- SystemPens.cs
- ContentType.cs
- DataGridViewRowConverter.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- DisableDpiAwarenessAttribute.cs
- GeometryValueSerializer.cs
- Columns.cs
- CommonGetThemePartSize.cs
- IsolatedStorageFileStream.cs
- SchemaImporterExtensionElementCollection.cs
- OleDbPermission.cs
- UserPersonalizationStateInfo.cs
- ValueType.cs
- CaseInsensitiveComparer.cs
- odbcmetadatacolumnnames.cs
- DataShape.cs
- TextElementEditingBehaviorAttribute.cs
- DecoderReplacementFallback.cs
- InvalidateEvent.cs
- StyleCollection.cs
- TextRenderer.cs
- TriggerCollection.cs
- FrameworkElement.cs
- Padding.cs
- MULTI_QI.cs
- FixedElement.cs
- SchemaEntity.cs
- FieldNameLookup.cs
- SqlConnectionStringBuilder.cs
- EpmContentSerializerBase.cs
- BevelBitmapEffect.cs
- InkCollectionBehavior.cs
- LocalizationParserHooks.cs
- TrackingMemoryStream.cs
- ServicesUtilities.cs
- WebEvents.cs
- PersistenceException.cs
- WorkflowEventArgs.cs
- SQLSingle.cs
- EncodingTable.cs
- SystemWebSectionGroup.cs
- HostingPreferredMapPath.cs
- TypedReference.cs
- FieldNameLookup.cs
- TextRangeEditLists.cs
- EventLogPermissionEntryCollection.cs
- SByte.cs
- CqlWriter.cs
- XPathNodeIterator.cs
- WebPartConnectionsCloseVerb.cs
- ReferenceEqualityComparer.cs
- rsa.cs
- RsaElement.cs
- ExpressionNormalizer.cs
- PerformanceCounterPermissionAttribute.cs
- CallSiteHelpers.cs
- BypassElementCollection.cs
- PackageRelationshipCollection.cs
- XmlEventCache.cs
- TableLayoutCellPaintEventArgs.cs
- RootBrowserWindow.cs
- MsmqMessageSerializationFormat.cs
- Grammar.cs
- ContentType.cs
- TextServicesCompartmentEventSink.cs
- FileLogRecordStream.cs
- HttpConfigurationContext.cs
- KeyTime.cs
- BaseDataBoundControlDesigner.cs
- ResXFileRef.cs
- Operators.cs
- DataSetMappper.cs