Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / XPathMessageFilterElementCollection.cs / 1 / XPathMessageFilterElementCollection.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Configuration { using System; using System.ServiceModel.Dispatcher; using System.Configuration; using System.Globalization; using System.ServiceModel; [ConfigurationCollection(typeof(XPathMessageFilterElement))] public sealed class XPathMessageFilterElementCollection : ServiceModelConfigurationElementCollection{ public XPathMessageFilterElementCollection() : base(ConfigurationElementCollectionType.AddRemoveClearMap, null, new XPathMessageFilterElementComparer()) { } public override bool ContainsKey(object key) { if (key == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("key"); } string newKey = string.Empty; if (key.GetType().IsAssignableFrom(typeof(XPathMessageFilter))) { newKey = XPathMessageFilterElementComparer.ParseXPathString((XPathMessageFilter)key); } else if (key.GetType().IsAssignableFrom(typeof(string))) { newKey = (string)key; } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException( SR.GetString(SR.ConfigInvalidKeyType, "XPathMessageFilterElement", typeof(XPathMessageFilter).AssemblyQualifiedName, key.GetType().AssemblyQualifiedName))); } return base.ContainsKey(newKey); } protected override Object GetElementKey(ConfigurationElement element) { if (element == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("element"); } XPathMessageFilterElement configElement = (XPathMessageFilterElement)element; if (configElement.Filter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("element", SR.GetString(SR.ConfigXPathFilterIsNull)); } return XPathMessageFilterElementComparer.ParseXPathString(configElement.Filter); } protected override ConfigurationPropertyCollection Properties { get { return new ConfigurationPropertyCollection(); } } public override XPathMessageFilterElement this[object key] { get { if (key == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("key"); } if (!key.GetType().IsAssignableFrom(typeof(XPathMessageFilter))) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException( SR.GetString(SR.ConfigInvalidKeyType, "XPathMessageFilterElement", typeof(XPathMessageFilter).AssemblyQualifiedName, key.GetType().AssemblyQualifiedName))); } XPathMessageFilterElement retval = (XPathMessageFilterElement)this.BaseGet(key); if (retval == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new System.Collections.Generic.KeyNotFoundException( SR.GetString(SR.ConfigKeyNotFoundInElementCollection, key.ToString()))); } return retval; } set { if (this.IsReadOnly()) { Add(value); } if (value == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); } if (key == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("key"); } if (!key.GetType().IsAssignableFrom(typeof(XPathMessageFilter))) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException( SR.GetString(SR.ConfigInvalidKeyType, "XPathMessageFilterElement", typeof(XPathMessageFilter).AssemblyQualifiedName, key.GetType().AssemblyQualifiedName))); } string oldKey = XPathMessageFilterElementComparer.ParseXPathString((XPathMessageFilter)key); string newKey = (string)this.GetElementKey(value); if (String.Equals(oldKey, newKey, StringComparison.Ordinal)) { if (BaseGet(key) != null) { BaseRemove(key); } Add(value); } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.ConfigKeysDoNotMatch, this.GetElementKey(value).ToString(), key.ToString())); } } } } } // 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
- RepeaterItemCollection.cs
- ResXBuildProvider.cs
- XmlQualifiedName.cs
- RowBinding.cs
- RuntimeConfigLKG.cs
- InkPresenter.cs
- UpdatePanel.cs
- Parsers.cs
- RunInstallerAttribute.cs
- DependencyObject.cs
- MatrixAnimationUsingKeyFrames.cs
- DefinitionProperties.cs
- WebPartConnectionsCancelVerb.cs
- SafeSecurityHelper.cs
- SignalGate.cs
- FrameworkContextData.cs
- PropertyInformationCollection.cs
- HttpModuleActionCollection.cs
- InstancePersistenceContext.cs
- XmlSerializerSection.cs
- WindowsContainer.cs
- AmbientLight.cs
- XmlnsDictionary.cs
- ProfileInfo.cs
- SurrogateEncoder.cs
- AddingNewEventArgs.cs
- RangeContentEnumerator.cs
- XPathMultyIterator.cs
- SerializationSectionGroup.cs
- SqlErrorCollection.cs
- PolyLineSegmentFigureLogic.cs
- ListItem.cs
- MimeBasePart.cs
- Int64AnimationBase.cs
- ParameterBuilder.cs
- AnimatedTypeHelpers.cs
- TextTreeTextElementNode.cs
- ServiceModelConfiguration.cs
- TransactionContext.cs
- PersonalizationDictionary.cs
- TextHidden.cs
- FragmentQueryKB.cs
- TypeDescriptor.cs
- UriSection.cs
- ResourceType.cs
- ResXBuildProvider.cs
- BaseTemplateBuildProvider.cs
- SoapSchemaMember.cs
- AddInController.cs
- DrawingServices.cs
- TableLayoutStyle.cs
- HtmlAnchor.cs
- SoapInteropTypes.cs
- RtfToken.cs
- PeerFlooder.cs
- CacheRequest.cs
- DrawToolTipEventArgs.cs
- TextContainerHelper.cs
- LongMinMaxAggregationOperator.cs
- ConstructorNeedsTagAttribute.cs
- SerialPort.cs
- PolicyValidator.cs
- MouseActionConverter.cs
- TextBlock.cs
- WeakReferenceList.cs
- AlgoModule.cs
- AndCondition.cs
- DataGridViewCellEventArgs.cs
- PageAdapter.cs
- DateTimeFormatInfoScanner.cs
- HtmlElementEventArgs.cs
- FixedTextPointer.cs
- PhysicalAddress.cs
- PreloadedPackages.cs
- PipeStream.cs
- DoubleStorage.cs
- EventWaitHandle.cs
- RegexCaptureCollection.cs
- XmlWhitespace.cs
- DataServiceQueryException.cs
- XmlDataSourceView.cs
- GlyphRun.cs
- GPRECT.cs
- MenuAdapter.cs
- MemberCollection.cs
- Int32RectConverter.cs
- DataGridViewHeaderCell.cs
- UrlAuthorizationModule.cs
- ClientFormsAuthenticationCredentials.cs
- ConnectorSelectionGlyph.cs
- NamespaceQuery.cs
- SplitterEvent.cs
- ToolboxItemAttribute.cs
- InputMethodStateTypeInfo.cs
- Compiler.cs
- Int64AnimationUsingKeyFrames.cs
- ComponentCommands.cs
- ResourceAssociationSet.cs
- DBDataPermission.cs
- Inflater.cs