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
- SQLMoney.cs
- DesignerToolStripControlHost.cs
- _LocalDataStore.cs
- Collection.cs
- XmlFormatExtensionPrefixAttribute.cs
- ProfileGroupSettings.cs
- PtsContext.cs
- ButtonChrome.cs
- QilParameter.cs
- EdgeModeValidation.cs
- BamlBinaryWriter.cs
- BuiltInExpr.cs
- RegexCapture.cs
- EncoderParameter.cs
- CompositeTypefaceMetrics.cs
- SHA384Managed.cs
- DispatcherTimer.cs
- CqlQuery.cs
- CustomAttribute.cs
- sqlser.cs
- MarkerProperties.cs
- RepeaterItem.cs
- PersonalizationProviderHelper.cs
- XmlSchemaComplexContentRestriction.cs
- SQLDecimal.cs
- SourceItem.cs
- JsonGlobals.cs
- TextContainer.cs
- StylusPointPropertyUnit.cs
- SharedDp.cs
- SyntaxCheck.cs
- FilterableAttribute.cs
- DataControlFieldCollection.cs
- RuntimeHelpers.cs
- isolationinterop.cs
- DataTrigger.cs
- DBCommand.cs
- ListSortDescription.cs
- TreeNodeCollectionEditor.cs
- CodeCatchClauseCollection.cs
- SafeCryptoHandles.cs
- StringConverter.cs
- SqlMethodAttribute.cs
- DesignerActionUIService.cs
- RectangleGeometry.cs
- DesignSurface.cs
- RequestCacheEntry.cs
- PackageRelationshipCollection.cs
- AnnotationHighlightLayer.cs
- PathFigureCollection.cs
- WebBrowser.cs
- GradientSpreadMethodValidation.cs
- GestureRecognitionResult.cs
- XsltLoader.cs
- BitmapEffectInputConnector.cs
- DecimalConverter.cs
- RedistVersionInfo.cs
- VSWCFServiceContractGenerator.cs
- PageRequestManager.cs
- SynthesizerStateChangedEventArgs.cs
- MetabaseServerConfig.cs
- XPathDocument.cs
- OleDbFactory.cs
- TabItemAutomationPeer.cs
- TaskHelper.cs
- AccessedThroughPropertyAttribute.cs
- X509CertificateValidator.cs
- NullableBoolConverter.cs
- UserValidatedEventArgs.cs
- XmlAttributeCollection.cs
- NullRuntimeConfig.cs
- CodeArrayIndexerExpression.cs
- PlaceHolder.cs
- DataTablePropertyDescriptor.cs
- DispatcherHookEventArgs.cs
- DesignerTextViewAdapter.cs
- Subset.cs
- RemotingException.cs
- PolicyLevel.cs
- WebPartCollection.cs
- ImageFormatConverter.cs
- ByteAnimationBase.cs
- PriorityItem.cs
- QuotedPairReader.cs
- CodeEntryPointMethod.cs
- DataGridViewRowsAddedEventArgs.cs
- OLEDB_Enum.cs
- ConditionalExpression.cs
- FontCollection.cs
- StatusBar.cs
- PropertyStore.cs
- MethodSet.cs
- StatusBar.cs
- EmptyEnumerable.cs
- VirtualPath.cs
- CodeDirectionExpression.cs
- MouseButton.cs
- JsonEncodingStreamWrapper.cs
- PropertyChangedEventArgs.cs
- ByteAnimationUsingKeyFrames.cs