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
- JsonFormatReaderGenerator.cs
- CapabilitiesSection.cs
- DataGridViewRowPostPaintEventArgs.cs
- ArraySegment.cs
- BitmapMetadata.cs
- DataContractSet.cs
- Point3DValueSerializer.cs
- RegistryHandle.cs
- WmlImageAdapter.cs
- DocobjHost.cs
- TileBrush.cs
- ISAPIWorkerRequest.cs
- BorderGapMaskConverter.cs
- MarkupCompiler.cs
- CryptoKeySecurity.cs
- TargetConverter.cs
- SchemaElementLookUpTableEnumerator.cs
- Simplifier.cs
- BulletedListEventArgs.cs
- FormsAuthentication.cs
- XmlSchemaAny.cs
- ChangeBlockUndoRecord.cs
- WhitespaceRule.cs
- OleDbInfoMessageEvent.cs
- UserControlDocumentDesigner.cs
- WindowsListViewItemCheckBox.cs
- SR.cs
- SafeFileMappingHandle.cs
- IsolatedStorageFileStream.cs
- PersonalizationProvider.cs
- COM2IDispatchConverter.cs
- DynamicRouteExpression.cs
- ExpressionEditorAttribute.cs
- PersonalizableTypeEntry.cs
- XmlLinkedNode.cs
- XPathScanner.cs
- DockingAttribute.cs
- PeerToPeerException.cs
- PrtCap_Base.cs
- WorkflowItemPresenter.cs
- InfoCardBinaryReader.cs
- SchemaSetCompiler.cs
- AddInBase.cs
- ClickablePoint.cs
- CodeCastExpression.cs
- XPathSelfQuery.cs
- KeyConstraint.cs
- DataGridTextBox.cs
- XmlQueryType.cs
- ControlCollection.cs
- TextDecorationUnitValidation.cs
- Instrumentation.cs
- WorkflowInstanceAbortedRecord.cs
- LeaseManager.cs
- WorkflowEnvironment.cs
- TTSVoice.cs
- DataMisalignedException.cs
- SystemPens.cs
- ECDiffieHellmanPublicKey.cs
- TimeSpanMinutesConverter.cs
- SchemaDeclBase.cs
- LoginName.cs
- CheckBox.cs
- ContentDesigner.cs
- CodeArrayCreateExpression.cs
- ImportedNamespaceContextItem.cs
- DataMemberListEditor.cs
- Binding.cs
- Faults.cs
- SqlEnums.cs
- DataViewManagerListItemTypeDescriptor.cs
- ProfileService.cs
- SettingsPropertyIsReadOnlyException.cs
- SR.cs
- NavigatorOutput.cs
- RuntimeConfig.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- ConnectionStringsExpressionEditor.cs
- WebHttpElement.cs
- InvalidProgramException.cs
- ObjectListComponentEditor.cs
- CorrelationToken.cs
- HandlerFactoryCache.cs
- EpmCustomContentSerializer.cs
- StringFunctions.cs
- SoapClientMessage.cs
- FocusTracker.cs
- XsdDuration.cs
- HatchBrush.cs
- NegationPusher.cs
- XsdDataContractImporter.cs
- ProtectedUri.cs
- XhtmlTextWriter.cs
- HttpWebRequestElement.cs
- TypeCodeDomSerializer.cs
- safex509handles.cs
- SecurityUtils.cs
- HtmlInputRadioButton.cs
- AsyncOperation.cs
- FactoryMaker.cs