Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / System / IO / Packaging / PackageRelationshipCollection.cs / 1 / PackageRelationshipCollection.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a class for representing a PackageRelationshipCollection. This is a part of the // MMCF Packaging Layer. // // Details: // This class handles serialization to/from relationship parts, creation of those parts // and offers methods to create, delete and enumerate relationships. // // History: // 01/03/2004: SarjanaS: Initial creation. // 03/17/2004: BruceMac: Initial implementation // 04/26/2004: Sarjanas: Refactored some of the code to InternalRelationshipCollection.cs // and added support for filtered relationships // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Windows; // For Exception strings - SRID using System.Collections.Generic; using System.Diagnostics; // For Debug.Assert using MS.Internal.IO.Packaging; namespace System.IO.Packaging { ////// Collection of all the relationships corresponding to a given source PackagePart /// public class PackageRelationshipCollection : IEnumerable{ //----------------------------------------------------- // // Public Methods // //----------------------------------------------------- #region IEnumerable /// /// Returns an enumerator for all the relationships for a PackagePart /// ///IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } /// /// Returns an enumerator over all the relationships for a PackagePart /// ///public IEnumerator GetEnumerator() { List .Enumerator relationshipsEnumerator = _relationships.GetEnumerator(); if (_filter == null) return relationshipsEnumerator; else return new FilteredEnumerator(relationshipsEnumerator, _filter); } #endregion //------------------------------------------------------ // // Internal Members // //----------------------------------------------------- #region Internal Members /// /// Constructor /// ///For use by PackagePart internal PackageRelationshipCollection(InternalRelationshipCollection relationships, string filter) { Debug.Assert(relationships != null, "relationships parameter cannot be null"); _relationships = relationships; _filter = filter; } #endregion //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ // None //----------------------------------------------------- // // Private Members // //------------------------------------------------------ #region Private Members private InternalRelationshipCollection _relationships; private string _filter; #endregion #region Private Class #region FilteredEnumerator Class ////// Internal class for the FilteredEnumerator /// private sealed class FilteredEnumerator : IEnumerator{ #region Constructor /// /// Constructs a FilteredEnumerator /// /// /// internal FilteredEnumerator(IEnumeratorenumerator, string filter) { Debug.Assert((enumerator != null), "Enumerator cannot be null"); Debug.Assert(filter != null, "PackageRelationship filter string cannot be null"); // Look for empty string or string with just spaces Debug.Assert(filter.Trim() != String.Empty, "RelationshipType filter cannot be empty string or a string with just spaces"); _enumerator = enumerator; _filter = filter; } #endregion Constructor #region IEnumerator Methods /// /// This method keeps moving the enumerator the the next position till /// a relationship is found with the matching Name /// ///Bool indicating if the enumerator successfully moved to the next position bool IEnumerator.MoveNext() { while (_enumerator.MoveNext()) { if (RelationshipTypeMatches()) return true; } return false; } ////// Gets the current object in the enumerator /// ///Object IEnumerator.Current { get { return _enumerator.Current; } } /// /// Resets the enumerator to the begining /// void IEnumerator.Reset() { _enumerator.Reset(); } #endregion IEnumerator Methods #region IEnumeratorMembers /// /// Gets the current object in the enumerator /// ///public PackageRelationship Current { get { return _enumerator.Current; } } #endregion IEnumerator Members #region IDisposable Members public void Dispose() { //Most enumerators have dispose as a no-op, we follow the same pattern. _enumerator.Dispose(); } #endregion IDisposable Members #region Private Methods private bool RelationshipTypeMatches() { PackageRelationship r = _enumerator.Current; //Case-sensitive comparison if (String.CompareOrdinal(r.RelationshipType, _filter)==0) return true; else return false; } #endregion Private Methods #region Private Members private IEnumerator _enumerator; private string _filter; #endregion Private Members } #endregion FilteredEnumerator Class #endregion Private Class } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // // // Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a class for representing a PackageRelationshipCollection. This is a part of the // MMCF Packaging Layer. // // Details: // This class handles serialization to/from relationship parts, creation of those parts // and offers methods to create, delete and enumerate relationships. // // History: // 01/03/2004: SarjanaS: Initial creation. // 03/17/2004: BruceMac: Initial implementation // 04/26/2004: Sarjanas: Refactored some of the code to InternalRelationshipCollection.cs // and added support for filtered relationships // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Windows; // For Exception strings - SRID using System.Collections.Generic; using System.Diagnostics; // For Debug.Assert using MS.Internal.IO.Packaging; namespace System.IO.Packaging { ////// Collection of all the relationships corresponding to a given source PackagePart /// public class PackageRelationshipCollection : IEnumerable{ //----------------------------------------------------- // // Public Methods // //----------------------------------------------------- #region IEnumerable /// /// Returns an enumerator for all the relationships for a PackagePart /// ///IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } /// /// Returns an enumerator over all the relationships for a PackagePart /// ///public IEnumerator GetEnumerator() { List .Enumerator relationshipsEnumerator = _relationships.GetEnumerator(); if (_filter == null) return relationshipsEnumerator; else return new FilteredEnumerator(relationshipsEnumerator, _filter); } #endregion //------------------------------------------------------ // // Internal Members // //----------------------------------------------------- #region Internal Members /// /// Constructor /// ///For use by PackagePart internal PackageRelationshipCollection(InternalRelationshipCollection relationships, string filter) { Debug.Assert(relationships != null, "relationships parameter cannot be null"); _relationships = relationships; _filter = filter; } #endregion //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ // None //----------------------------------------------------- // // Private Members // //------------------------------------------------------ #region Private Members private InternalRelationshipCollection _relationships; private string _filter; #endregion #region Private Class #region FilteredEnumerator Class ////// Internal class for the FilteredEnumerator /// private sealed class FilteredEnumerator : IEnumerator{ #region Constructor /// /// Constructs a FilteredEnumerator /// /// /// internal FilteredEnumerator(IEnumeratorenumerator, string filter) { Debug.Assert((enumerator != null), "Enumerator cannot be null"); Debug.Assert(filter != null, "PackageRelationship filter string cannot be null"); // Look for empty string or string with just spaces Debug.Assert(filter.Trim() != String.Empty, "RelationshipType filter cannot be empty string or a string with just spaces"); _enumerator = enumerator; _filter = filter; } #endregion Constructor #region IEnumerator Methods /// /// This method keeps moving the enumerator the the next position till /// a relationship is found with the matching Name /// ///Bool indicating if the enumerator successfully moved to the next position bool IEnumerator.MoveNext() { while (_enumerator.MoveNext()) { if (RelationshipTypeMatches()) return true; } return false; } ////// Gets the current object in the enumerator /// ///Object IEnumerator.Current { get { return _enumerator.Current; } } /// /// Resets the enumerator to the begining /// void IEnumerator.Reset() { _enumerator.Reset(); } #endregion IEnumerator Methods #region IEnumeratorMembers /// /// Gets the current object in the enumerator /// ///public PackageRelationship Current { get { return _enumerator.Current; } } #endregion IEnumerator Members #region IDisposable Members public void Dispose() { //Most enumerators have dispose as a no-op, we follow the same pattern. _enumerator.Dispose(); } #endregion IDisposable Members #region Private Methods private bool RelationshipTypeMatches() { PackageRelationship r = _enumerator.Current; //Case-sensitive comparison if (String.CompareOrdinal(r.RelationshipType, _filter)==0) return true; else return false; } #endregion Private Methods #region Private Members private IEnumerator _enumerator; private string _filter; #endregion Private Members } #endregion FilteredEnumerator Class #endregion Private Class } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CatalogPart.cs
- DbConnectionPoolIdentity.cs
- ContentPlaceHolder.cs
- ObjectManager.cs
- FilterableAttribute.cs
- NameTable.cs
- SecurityDescriptor.cs
- wgx_sdk_version.cs
- CacheEntry.cs
- X509CertificateCollection.cs
- SmiSettersStream.cs
- IImplicitResourceProvider.cs
- DocobjHost.cs
- ImageKeyConverter.cs
- PinnedBufferMemoryStream.cs
- DataSourceHelper.cs
- XmlCodeExporter.cs
- Style.cs
- GenericUriParser.cs
- ObjectResult.cs
- UserPersonalizationStateInfo.cs
- WebPartAuthorizationEventArgs.cs
- ThicknessAnimationUsingKeyFrames.cs
- IconBitmapDecoder.cs
- WindowsAuthenticationModule.cs
- DbProviderFactories.cs
- DelegatingConfigHost.cs
- ModelMemberCollection.cs
- IIS7WorkerRequest.cs
- UnsupportedPolicyOptionsException.cs
- remotingproxy.cs
- WeakReadOnlyCollection.cs
- Button.cs
- RegexFCD.cs
- TransformCollection.cs
- NextPreviousPagerField.cs
- ObjectDataSourceMethodEventArgs.cs
- DataObject.cs
- WindowsListViewItemStartMenu.cs
- DataSetUtil.cs
- PropertyGridDesigner.cs
- CustomBindingElement.cs
- DataRecordObjectView.cs
- SQLChars.cs
- WebPartZone.cs
- LabelTarget.cs
- NetNamedPipeBinding.cs
- SmtpMail.cs
- Constants.cs
- RootBuilder.cs
- FixedPosition.cs
- mongolianshape.cs
- ProviderConnectionPointCollection.cs
- MDIControlStrip.cs
- WorkflowDesigner.cs
- ArithmeticLiteral.cs
- FillErrorEventArgs.cs
- ObjectParameterCollection.cs
- MexServiceChannelBuilder.cs
- WindowsListViewItemCheckBox.cs
- TriState.cs
- PixelFormats.cs
- DataProtection.cs
- FilterFactory.cs
- ProcessProtocolHandler.cs
- ItemCheckedEvent.cs
- HtmlPageAdapter.cs
- OracleBFile.cs
- AutomationPropertyInfo.cs
- AnnotationResourceChangedEventArgs.cs
- ViewStateException.cs
- NonSerializedAttribute.cs
- GlyphRunDrawing.cs
- ListViewInsertionMark.cs
- DesignerMetadata.cs
- BooleanFunctions.cs
- SoapSchemaImporter.cs
- AmbientProperties.cs
- ClientCredentialsElement.cs
- Image.cs
- RequiredFieldValidator.cs
- CapabilitiesAssignment.cs
- CreateUserWizard.cs
- HorizontalAlignConverter.cs
- CngProperty.cs
- ScriptingRoleServiceSection.cs
- TreeView.cs
- QueryGenerator.cs
- RuleElement.cs
- OutputWindow.cs
- SoapAttributeOverrides.cs
- UnsafeNativeMethods.cs
- Polygon.cs
- ColumnResizeAdorner.cs
- RelationshipNavigation.cs
- cryptoapiTransform.cs
- SourceElementsCollection.cs
- GroupStyle.cs
- SQLInt32Storage.cs
- ProtocolState.cs