Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / ExtensionCollection.cs / 1 / ExtensionCollection.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime.Serialization; public sealed class ExtensionCollection: SynchronizedCollection >, IExtensionCollection where T : IExtensibleObject { T owner; public ExtensionCollection(T owner) { if (owner == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("owner"); this.owner = owner; } public ExtensionCollection(T owner, object syncRoot) : base(syncRoot) { if (owner == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("owner"); this.owner = owner; } bool ICollection >.IsReadOnly { get { return false; } } protected override void ClearItems() { IExtension [] array; lock (this.SyncRoot) { array = new IExtension [this.Count]; this.CopyTo(array, 0); base.ClearItems(); foreach (IExtension extension in array) { extension.Detach(this.owner); } } } public E Find () { List > items = this.Items; lock (this.SyncRoot) { for (int i=this.Count-1; i>=0; i--) { IExtension item = items[i]; if (item is E) return (E)item; } } return default(E); } public Collection FindAll () { Collection result = new Collection (); List > items = this.Items; lock (this.SyncRoot) { for (int i=0; i item = items[i]; if (item is E) result.Add((E)item); } } return result; } protected override void InsertItem(int index, IExtension item) { if (item == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("item"); lock (this.SyncRoot) { item.Attach(this.owner); base.InsertItem(index, item); } } protected override void RemoveItem(int index) { lock (this.SyncRoot) { this.Items[index].Detach(this.owner); base.RemoveItem(index); } } protected override void SetItem(int index, IExtension item) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxCannotSetExtensionsByIndex))); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ColumnResizeUndoUnit.cs
- AttachedPropertyDescriptor.cs
- DataException.cs
- FormViewDeleteEventArgs.cs
- MessageRpc.cs
- CommonXSendMessage.cs
- HtmlEncodedRawTextWriter.cs
- RepeatBehaviorConverter.cs
- MimeMultiPart.cs
- DataGridViewCellStateChangedEventArgs.cs
- ZoneIdentityPermission.cs
- TrustManager.cs
- Group.cs
- Timeline.cs
- EntityViewGenerationAttribute.cs
- SafeHandle.cs
- LabelLiteral.cs
- PingReply.cs
- PointHitTestParameters.cs
- EntityConnectionStringBuilder.cs
- ClientUtils.cs
- DataGridHeaderBorder.cs
- TransformProviderWrapper.cs
- FeatureSupport.cs
- BuildProviderAppliesToAttribute.cs
- UnmanagedMemoryStreamWrapper.cs
- AuthenticationException.cs
- LinqTreeNodeEvaluator.cs
- BinaryFormatterWriter.cs
- DiscriminatorMap.cs
- IdentityNotMappedException.cs
- DesigntimeLicenseContext.cs
- PeerDefaultCustomResolverClient.cs
- MasterPageBuildProvider.cs
- exports.cs
- X509Certificate.cs
- TextEmbeddedObject.cs
- ElementHost.cs
- MissingSatelliteAssemblyException.cs
- SHA384Managed.cs
- ValidationPropertyAttribute.cs
- IRCollection.cs
- EntitySqlQueryCacheKey.cs
- GridItem.cs
- Cell.cs
- FormatConvertedBitmap.cs
- NetStream.cs
- TextTreeDeleteContentUndoUnit.cs
- RightsManagementResourceHelper.cs
- Environment.cs
- DiagnosticStrings.cs
- CompositionAdorner.cs
- KerberosTicketHashIdentifierClause.cs
- LoginName.cs
- TreeNode.cs
- DataGridViewCell.cs
- StreamingContext.cs
- RenderingEventArgs.cs
- VSWCFServiceContractGenerator.cs
- WebPartHelpVerb.cs
- XmlAnyElementAttribute.cs
- ViewLoader.cs
- ListControlBuilder.cs
- DocumentNUp.cs
- PatternMatcher.cs
- VirtualPathProvider.cs
- SerializationStore.cs
- ObjectDataProvider.cs
- InternalControlCollection.cs
- ProcessHostMapPath.cs
- RSACryptoServiceProvider.cs
- DirtyTextRange.cs
- HttpBrowserCapabilitiesWrapper.cs
- DataGridViewCellCollection.cs
- Utils.cs
- AttachedPropertyBrowsableAttribute.cs
- LinqDataSourceValidationException.cs
- BasicViewGenerator.cs
- Vertex.cs
- CodeThrowExceptionStatement.cs
- ProfileInfo.cs
- ParameterInfo.cs
- SafeJobHandle.cs
- TemplateBindingExtension.cs
- ActivityInterfaces.cs
- Activity.cs
- PrinterUnitConvert.cs
- ToolboxItem.cs
- SymbolType.cs
- BitmapFrame.cs
- Frame.cs
- WebServiceHandlerFactory.cs
- Match.cs
- ObjectIDGenerator.cs
- SchemaNotation.cs
- AccessKeyManager.cs
- BitmapEffectvisualstate.cs
- SystemThemeKey.cs
- XmlSchemaAnyAttribute.cs
- ColorConvertedBitmap.cs