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
- XmlSchemaSimpleContent.cs
- RevocationPoint.cs
- SerialPort.cs
- LabelAutomationPeer.cs
- DocumentEventArgs.cs
- WebPartDisplayModeEventArgs.cs
- ConstNode.cs
- DbUpdateCommandTree.cs
- QilTernary.cs
- DataContractSerializer.cs
- MeshGeometry3D.cs
- DbSetClause.cs
- TextBoxAutomationPeer.cs
- GrammarBuilderWildcard.cs
- RadioButton.cs
- Matrix3DValueSerializer.cs
- SortQuery.cs
- Viewport3DAutomationPeer.cs
- TextEditorSelection.cs
- Base64Stream.cs
- DispatcherSynchronizationContext.cs
- AutomationEvent.cs
- DeploymentSectionCache.cs
- MemberRelationshipService.cs
- UrlAuthorizationModule.cs
- MailAddressParser.cs
- TypeUsageBuilder.cs
- XmlArrayItemAttributes.cs
- ParentQuery.cs
- CodeSnippetTypeMember.cs
- SqlProviderServices.cs
- CommandField.cs
- ModelItem.cs
- DelegatingConfigHost.cs
- Authorization.cs
- ReflectEventDescriptor.cs
- XmlSchemaAttributeGroupRef.cs
- DataBindingCollection.cs
- PhoneCall.cs
- SemaphoreSecurity.cs
- FileDetails.cs
- Label.cs
- OpenFileDialog.cs
- MethodInfo.cs
- PathBox.cs
- DataGridPagingPage.cs
- TypeBrowserDialog.cs
- ColorConvertedBitmapExtension.cs
- StringDictionary.cs
- SelectionEditingBehavior.cs
- InputLanguage.cs
- ConnectionConsumerAttribute.cs
- SimpleHandlerFactory.cs
- EnumerableRowCollectionExtensions.cs
- TargetConverter.cs
- MetafileHeaderWmf.cs
- ToolStripLabel.cs
- FontDriver.cs
- XamlRtfConverter.cs
- DesignSurface.cs
- Debug.cs
- SqlConnectionPoolGroupProviderInfo.cs
- TypedMessageConverter.cs
- GridViewHeaderRowPresenter.cs
- ExcCanonicalXml.cs
- Decimal.cs
- DeviceContext2.cs
- GlyphsSerializer.cs
- WebFormDesignerActionService.cs
- ModelUIElement3D.cs
- AppDomainAttributes.cs
- LifetimeServices.cs
- UpDownBase.cs
- SHA256Cng.cs
- WorkflowQueuingService.cs
- CaseInsensitiveOrdinalStringComparer.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- InputDevice.cs
- QueryContinueDragEvent.cs
- CodeAttributeDeclaration.cs
- HMACSHA256.cs
- EventToken.cs
- InstancePersistenceEvent.cs
- FtpWebRequest.cs
- ProcessHostServerConfig.cs
- FixUp.cs
- CommandTreeTypeHelper.cs
- MimeAnyImporter.cs
- RelationshipType.cs
- TrimSurroundingWhitespaceAttribute.cs
- PrintDialog.cs
- BaseAsyncResult.cs
- TaskResultSetter.cs
- EtwTrace.cs
- RequestReplyCorrelator.cs
- PreProcessInputEventArgs.cs
- DataGridViewToolTip.cs
- GcSettings.cs
- SqlLiftWhereClauses.cs
- SystemSounds.cs