Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlUrlResolver.cs
- XamlToRtfWriter.cs
- Size3DValueSerializer.cs
- OleDbConnectionFactory.cs
- ProviderSettings.cs
- MultiView.cs
- SingleAnimation.cs
- WebPartsSection.cs
- SplitterPanel.cs
- InfoCardSymmetricAlgorithm.cs
- IdentifierService.cs
- AssociationSet.cs
- RemotingSurrogateSelector.cs
- TreeNodeEventArgs.cs
- Object.cs
- EqualityComparer.cs
- GlyphElement.cs
- RegexReplacement.cs
- HitTestFilterBehavior.cs
- NativeMethods.cs
- InputScope.cs
- ReadOnlyDataSourceView.cs
- ProviderUtil.cs
- ObjectContext.cs
- DoubleAnimationClockResource.cs
- UrlAuthorizationModule.cs
- OleAutBinder.cs
- sqlnorm.cs
- HwndProxyElementProvider.cs
- HtmlInputButton.cs
- CurrentTimeZone.cs
- BitmapEffect.cs
- TableCell.cs
- ActivityXRefPropertyEditor.cs
- tibetanshape.cs
- TaskFactory.cs
- SqlCommand.cs
- X509Extension.cs
- SHA384CryptoServiceProvider.cs
- XmlQueryType.cs
- NameValueSectionHandler.cs
- MethodToken.cs
- SQLString.cs
- MailWebEventProvider.cs
- ControlParameter.cs
- HttpSysSettings.cs
- RayHitTestParameters.cs
- BitmapMetadata.cs
- SiteMap.cs
- SemanticResolver.cs
- DateTimeConverter.cs
- ClassDataContract.cs
- XmlTextReader.cs
- SymDocumentType.cs
- DesignBindingPicker.cs
- SystemWebCachingSectionGroup.cs
- EnglishPluralizationService.cs
- OptimalBreakSession.cs
- WebPartManager.cs
- ObjectDataSource.cs
- WeakReference.cs
- RegisteredScript.cs
- Rectangle.cs
- ByteStack.cs
- CodeCommentStatementCollection.cs
- BoolLiteral.cs
- HttpProfileBase.cs
- BitmapDecoder.cs
- ListControl.cs
- UnsafeNativeMethods.cs
- WorkItem.cs
- SchemaAttDef.cs
- ZoneIdentityPermission.cs
- DiscreteKeyFrames.cs
- DoubleLinkListEnumerator.cs
- SpecialTypeDataContract.cs
- UserInitiatedNavigationPermission.cs
- TextEditorCharacters.cs
- dataSvcMapFileLoader.cs
- NetworkAddressChange.cs
- DataBindingCollection.cs
- ProbeRequestResponseAsyncResult.cs
- DbProviderServices.cs
- ReadOnlyCollection.cs
- ChangeNode.cs
- TextEditorContextMenu.cs
- CfgSemanticTag.cs
- FileDataSourceCache.cs
- SettingsPropertyWrongTypeException.cs
- SoapSchemaMember.cs
- ProcessThreadCollection.cs
- HtmlContainerControl.cs
- AdornerDecorator.cs
- AuthenticationService.cs
- Dictionary.cs
- DataContract.cs
- TextEffect.cs
- SystemIcmpV6Statistics.cs
- XamlContextStack.cs
- KeyFrames.cs