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
- IconHelper.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- TreeBuilderXamlTranslator.cs
- WeakReadOnlyCollection.cs
- ProcessHostFactoryHelper.cs
- ForeignKeyConstraint.cs
- ImmComposition.cs
- MessageFilterException.cs
- SharedStatics.cs
- QilList.cs
- Currency.cs
- RangeValueProviderWrapper.cs
- DataGridViewCellStateChangedEventArgs.cs
- ListComponentEditor.cs
- OracleBoolean.cs
- Util.cs
- MessageQueuePermissionEntry.cs
- ClientSponsor.cs
- M3DUtil.cs
- PolyBezierSegment.cs
- TableDesigner.cs
- PixelFormatConverter.cs
- TagMapInfo.cs
- DashStyle.cs
- BinaryConverter.cs
- SmtpReplyReaderFactory.cs
- HttpRequest.cs
- UriSection.cs
- IisTraceListener.cs
- BaseResourcesBuildProvider.cs
- WorkflowMessageEventArgs.cs
- BrowserCapabilitiesFactory.cs
- GraphicsContainer.cs
- MaterialCollection.cs
- XmlAnyElementAttribute.cs
- TreeBuilderBamlTranslator.cs
- Bidi.cs
- SqlBooleanMismatchVisitor.cs
- ContentAlignmentEditor.cs
- Certificate.cs
- HtmlEncodedRawTextWriter.cs
- ConcurrentDictionary.cs
- HwndSource.cs
- UniqueID.cs
- UnsafeNativeMethods.cs
- XmlStreamStore.cs
- Pen.cs
- TypedElement.cs
- ObjectTag.cs
- _ProxyChain.cs
- TableLayoutRowStyleCollection.cs
- XmlResolver.cs
- CalendarItem.cs
- MainMenu.cs
- SatelliteContractVersionAttribute.cs
- ImageAttributes.cs
- GenericXmlSecurityToken.cs
- OleDbReferenceCollection.cs
- SqlBulkCopy.cs
- CodeMethodInvokeExpression.cs
- ItemChangedEventArgs.cs
- XmlSchemaValidator.cs
- OleDbReferenceCollection.cs
- EventBuilder.cs
- ConsoleCancelEventArgs.cs
- Component.cs
- ElapsedEventArgs.cs
- DataGridViewSelectedRowCollection.cs
- SelectionPattern.cs
- HuffCodec.cs
- CfgSemanticTag.cs
- ServiceInstanceProvider.cs
- TreeNodeCollection.cs
- IntegerValidator.cs
- Maps.cs
- SoapSchemaExporter.cs
- EmbeddedObject.cs
- EntityDataSourceContainerNameItem.cs
- Model3DGroup.cs
- SynchronizingStream.cs
- XPathParser.cs
- StorageAssociationSetMapping.cs
- ListMarkerSourceInfo.cs
- ExtendedProperty.cs
- SignHashRequest.cs
- ConfigurationStrings.cs
- HttpRuntime.cs
- UrlAuthFailedErrorFormatter.cs
- FunctionCommandText.cs
- SelectionBorderGlyph.cs
- RadioButton.cs
- ExpandoObject.cs
- MemberCollection.cs
- Debug.cs
- DataControlFieldCollection.cs
- RectangleGeometry.cs
- DependencyObjectPropertyDescriptor.cs
- EventBindingService.cs
- Vector3DCollectionConverter.cs
- DataSourceProvider.cs