Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / ServiceModelEnhancedConfigurationElementCollection.cs / 1 / ServiceModelEnhancedConfigurationElementCollection.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Configuration { using System.Configuration; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.ServiceModel.Diagnostics; public abstract class ServiceModelEnhancedConfigurationElementCollection: ServiceModelConfigurationElementCollection where TConfigurationElement : ConfigurationElement, new() { internal ServiceModelEnhancedConfigurationElementCollection(string elementName) : base(ConfigurationElementCollectionType.AddRemoveClearMap, elementName) { this.AddElementName = elementName; } protected override void BaseAdd(ConfigurationElement element) { if (null == element) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("element"); } // Is this a duplicate key? object newElementKey = this.GetElementKey(element); if (this.ContainsKey(newElementKey)) { ConfigurationElement oldElement = this.BaseGet(newElementKey); if (null != oldElement) { // Is oldElement present in the current level of config // being manipulated (i.e. duplicate in same config file) if (oldElement.ElementInformation.IsPresent) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException( SR.GetString(SR.ConfigDuplicateKeyAtSameScope, this.ElementName, newElementKey))); } else if (DiagnosticUtility.ShouldTraceWarning) { Dictionary values = new Dictionary (6); values.Add("ElementName", this.ElementName); values.Add("Name", newElementKey.ToString()); values.Add("OldElementLocation", oldElement.ElementInformation.Source); values.Add("OldElementLineNumber", oldElement.ElementInformation.LineNumber.ToString(NumberFormatInfo.CurrentInfo)); values.Add("NewElementLocation", element.ElementInformation.Source); values.Add("NewElementLineNumber", element.ElementInformation.LineNumber.ToString(NumberFormatInfo.CurrentInfo)); DictionaryTraceRecord traceRecord = new DictionaryTraceRecord(values); TraceUtility.TraceEvent(TraceEventType.Warning, TraceCode.OverridingDuplicateConfigurationKey, traceRecord, this, null); } } } base.BaseAdd(element); } protected override bool ThrowOnDuplicate { get { return false; } } } } // 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
- LineSegment.cs
- EmptyEnumerator.cs
- HttpException.cs
- ClipboardData.cs
- ErrorTableItemStyle.cs
- ObfuscationAttribute.cs
- ThreadStartException.cs
- OleDbErrorCollection.cs
- DynamicPropertyHolder.cs
- SrgsOneOf.cs
- HotSpot.cs
- WebPermission.cs
- DictionaryContent.cs
- MdiWindowListStrip.cs
- MethodCallConverter.cs
- SafeProcessHandle.cs
- ContainerParaClient.cs
- CollectionTraceRecord.cs
- MetadataCache.cs
- AVElementHelper.cs
- PassportAuthenticationModule.cs
- CodeLabeledStatement.cs
- Models.cs
- _LazyAsyncResult.cs
- AppDomainShutdownMonitor.cs
- DataGridViewSelectedColumnCollection.cs
- WebPartConnection.cs
- BackStopAuthenticationModule.cs
- ArrayWithOffset.cs
- EntityClassGenerator.cs
- ConfigurationPermission.cs
- HashCodeCombiner.cs
- DataPagerField.cs
- TextContainerHelper.cs
- Panel.cs
- DrawListViewColumnHeaderEventArgs.cs
- Evaluator.cs
- CancelEventArgs.cs
- Label.cs
- Panel.cs
- SafeLibraryHandle.cs
- CommittableTransaction.cs
- RelAssertionDirectKeyIdentifierClause.cs
- AssertFilter.cs
- HashSetDebugView.cs
- RequestQueryParser.cs
- ThreadStaticAttribute.cs
- UpdatableWrapper.cs
- SequentialOutput.cs
- PolicyImporterElement.cs
- DeviceContext2.cs
- HashMembershipCondition.cs
- ParameterSubsegment.cs
- QueryableDataSourceEditData.cs
- TableLayoutPanelCellPosition.cs
- SQLSingleStorage.cs
- DropTarget.cs
- Baml2006ReaderFrame.cs
- RuleInfoComparer.cs
- SQLInt64.cs
- X509ThumbprintKeyIdentifierClause.cs
- StylusPlugInCollection.cs
- DBConcurrencyException.cs
- ObjectSerializerFactory.cs
- DependencyProperty.cs
- SmtpNegotiateAuthenticationModule.cs
- UrlAuthFailureHandler.cs
- CustomDictionarySources.cs
- SequentialUshortCollection.cs
- DBSchemaRow.cs
- Select.cs
- DesignerRegionCollection.cs
- RootProjectionNode.cs
- TextAdaptor.cs
- PrePrepareMethodAttribute.cs
- SizeChangedEventArgs.cs
- WebEventTraceProvider.cs
- CalendarDateRange.cs
- BitmapEffectRenderDataResource.cs
- PageBreakRecord.cs
- LineSegment.cs
- WebPartConnection.cs
- IriParsingElement.cs
- UserControlAutomationPeer.cs
- ProcessInputEventArgs.cs
- DiagnosticSection.cs
- ProcessHostConfigUtils.cs
- PrivilegeNotHeldException.cs
- ConfigurationStrings.cs
- DataRelationCollection.cs
- KeyEvent.cs
- KeySpline.cs
- TextControlDesigner.cs
- InvalidWorkflowException.cs
- Cursor.cs
- BypassElement.cs
- XmlCharacterData.cs
- BatchParser.cs
- ItemAutomationPeer.cs
- ResXFileRef.cs