Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Common / Utils / DisposableCollectionWrapper.cs / 1 / 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()
{
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()
{
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
- GeometryHitTestResult.cs
- KeyValuePairs.cs
- WebPartCatalogCloseVerb.cs
- ServicesUtilities.cs
- AssemblyCache.cs
- Calendar.cs
- UnsafeNativeMethods.cs
- DataRowCollection.cs
- oledbmetadatacollectionnames.cs
- SubMenuStyleCollection.cs
- XPathEmptyIterator.cs
- ObjectComplexPropertyMapping.cs
- MailHeaderInfo.cs
- DataGrid.cs
- BasicCellRelation.cs
- ScriptResourceHandler.cs
- WebPageTraceListener.cs
- LazyInitializer.cs
- EnumMember.cs
- SqlDataSourceCustomCommandEditor.cs
- BufferBuilder.cs
- RawTextInputReport.cs
- SafeCloseHandleCritical.cs
- EventTrigger.cs
- NativeWindow.cs
- SamlSubject.cs
- SmtpMail.cs
- GregorianCalendarHelper.cs
- IgnoreSection.cs
- QilTernary.cs
- DataMisalignedException.cs
- Token.cs
- WindowsNonControl.cs
- GeometryModel3D.cs
- TableStyle.cs
- SecurityDocument.cs
- SmtpAuthenticationManager.cs
- EventDescriptorCollection.cs
- MetaType.cs
- ConfigurationValues.cs
- ActionFrame.cs
- XXXInfos.cs
- HttpRequest.cs
- CalculatedColumn.cs
- mediaeventargs.cs
- DesignerEditorPartChrome.cs
- httpapplicationstate.cs
- DataGridViewControlCollection.cs
- ContextBase.cs
- SecurityPolicySection.cs
- MarshalDirectiveException.cs
- XmlSchemaExporter.cs
- XPathNodeInfoAtom.cs
- Bitmap.cs
- ToolStripSystemRenderer.cs
- SectionRecord.cs
- SqlNamer.cs
- LostFocusEventManager.cs
- ItemsControlAutomationPeer.cs
- EntityDataSourceSelectingEventArgs.cs
- _ContextAwareResult.cs
- SeverityFilter.cs
- Simplifier.cs
- VisualStyleRenderer.cs
- ResourceManagerWrapper.cs
- CodeValidator.cs
- WindowsFormsHostPropertyMap.cs
- CategoryGridEntry.cs
- GridViewRowEventArgs.cs
- DesignTimeTemplateParser.cs
- StorageComplexTypeMapping.cs
- RuleRefElement.cs
- TextModifier.cs
- ValidatorCompatibilityHelper.cs
- FormatVersion.cs
- EncryptedData.cs
- SelectionProcessor.cs
- TableLayoutStyle.cs
- LongTypeConverter.cs
- wgx_render.cs
- SchemaNamespaceManager.cs
- ZipIOCentralDirectoryFileHeader.cs
- CurrencyWrapper.cs
- SchemaType.cs
- PrimitiveDataContract.cs
- HostExecutionContextManager.cs
- ListControlConvertEventArgs.cs
- SiteMapProvider.cs
- CustomError.cs
- HierarchicalDataBoundControlAdapter.cs
- ReadOnlyNameValueCollection.cs
- AssociatedControlConverter.cs
- ComponentEvent.cs
- BindingList.cs
- TraversalRequest.cs
- UnionExpr.cs
- Util.cs
- MessageVersion.cs
- FieldNameLookup.cs
- PropertyEntry.cs