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
- PropertyChangedEventArgs.cs
- UnsupportedPolicyOptionsException.cs
- ConditionCollection.cs
- ServiceDeploymentInfo.cs
- ReadOnlyTernaryTree.cs
- OperationPickerDialog.designer.cs
- Style.cs
- SByteStorage.cs
- SizeAnimationClockResource.cs
- AppDomainAttributes.cs
- ToolboxSnapDragDropEventArgs.cs
- Vector3D.cs
- ValueChangedEventManager.cs
- CustomBinding.cs
- RootBrowserWindowProxy.cs
- Pkcs9Attribute.cs
- TableRow.cs
- RegexCompiler.cs
- PagePropertiesChangingEventArgs.cs
- AuthenticateEventArgs.cs
- SiteMapDataSourceView.cs
- ConfigurationLockCollection.cs
- EventBuilder.cs
- XPathNode.cs
- ObjectDataSourceWizardForm.cs
- TcpHostedTransportConfiguration.cs
- NGCSerializerAsync.cs
- PackageProperties.cs
- DefinitionBase.cs
- StateDesigner.Helpers.cs
- BitStack.cs
- MenuTracker.cs
- TraceFilter.cs
- GrammarBuilder.cs
- EventLogPermissionAttribute.cs
- EntityClientCacheEntry.cs
- RIPEMD160.cs
- DataGridViewCellConverter.cs
- TransactionFlowBindingElementImporter.cs
- ValidationRule.cs
- RequestQueryProcessor.cs
- BasePattern.cs
- RowsCopiedEventArgs.cs
- CheckedPointers.cs
- OSFeature.cs
- ColumnMap.cs
- ReflectionUtil.cs
- PKCS1MaskGenerationMethod.cs
- LinqDataSourceDisposeEventArgs.cs
- login.cs
- OracleInternalConnection.cs
- ExtendLockCommand.cs
- StaticExtensionConverter.cs
- ThreadExceptionEvent.cs
- SafeCloseHandleCritical.cs
- ZoneLinkButton.cs
- SerializationHelper.cs
- ConnectionPointCookie.cs
- NodeFunctions.cs
- RegexGroupCollection.cs
- DataColumnMappingCollection.cs
- UnsafeNativeMethodsMilCoreApi.cs
- TdsParserHelperClasses.cs
- Line.cs
- CheckBoxField.cs
- CopyAttributesAction.cs
- MobileErrorInfo.cs
- TableMethodGenerator.cs
- GetWinFXPath.cs
- DocumentEventArgs.cs
- SamlAttributeStatement.cs
- BooleanStorage.cs
- DesignerVerbCollection.cs
- SiteMapDataSource.cs
- PeerPresenceInfo.cs
- DrawingContextDrawingContextWalker.cs
- CreateUserWizardStep.cs
- EncodingStreamWrapper.cs
- ToolStripSplitButton.cs
- EastAsianLunisolarCalendar.cs
- XamlToRtfWriter.cs
- WindowHideOrCloseTracker.cs
- SignedInfo.cs
- AnnotationResourceChangedEventArgs.cs
- OleDbRowUpdatedEvent.cs
- RuntimeHelpers.cs
- PersianCalendar.cs
- DataGridViewCellMouseEventArgs.cs
- WebPartAddingEventArgs.cs
- UndoManager.cs
- XmlSchemaNotation.cs
- OdbcParameter.cs
- Stroke.cs
- EncryptedKeyIdentifierClause.cs
- UnsafeNativeMethods.cs
- SiteMapNode.cs
- Span.cs
- CapacityStreamGeometryContext.cs
- RequestCacheValidator.cs
- MetafileHeaderWmf.cs