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
- XmlSchemaSet.cs
- ProtocolViolationException.cs
- DeclaredTypeValidator.cs
- NonParentingControl.cs
- SqlRemoveConstantOrderBy.cs
- TableSectionStyle.cs
- TimeSpanMinutesConverter.cs
- TextBox.cs
- HtmlInputPassword.cs
- OrthographicCamera.cs
- XmlBoundElement.cs
- UnaryQueryOperator.cs
- ParserContext.cs
- Queue.cs
- DebugTracing.cs
- ISCIIEncoding.cs
- XmlQueryRuntime.cs
- COM2FontConverter.cs
- SqlDataSourceSelectingEventArgs.cs
- Pool.cs
- MetaDataInfo.cs
- ProfileManager.cs
- ActiveXMessageFormatter.cs
- WriteableOnDemandPackagePart.cs
- AtomParser.cs
- InstancePersistenceCommandException.cs
- OracleParameterBinding.cs
- DetailsViewRowCollection.cs
- WriteableOnDemandPackagePart.cs
- AttachedPropertyMethodSelector.cs
- ReadOnlyDictionary.cs
- CodeMethodReturnStatement.cs
- FixedSchema.cs
- ObjectIDGenerator.cs
- WebServiceHostFactory.cs
- SmiEventSink_Default.cs
- VirtualizingStackPanel.cs
- ExpressionBindingCollection.cs
- FullTextBreakpoint.cs
- HtmlShimManager.cs
- ResourceSet.cs
- Base64Encoder.cs
- ExpandedWrapper.cs
- BitmapEffectState.cs
- VisualBrush.cs
- ConnectionStringSettingsCollection.cs
- NoClickablePointException.cs
- WebPartsSection.cs
- SchemaCollectionCompiler.cs
- ServiceCredentialsSecurityTokenManager.cs
- InkPresenter.cs
- SmtpFailedRecipientException.cs
- ScriptControl.cs
- NullableDecimalMinMaxAggregationOperator.cs
- WebPartAddingEventArgs.cs
- MarginsConverter.cs
- FlowPanelDesigner.cs
- SelectionProcessor.cs
- embossbitmapeffect.cs
- HandleCollector.cs
- PointCollection.cs
- Menu.cs
- HttpCapabilitiesEvaluator.cs
- Int64AnimationUsingKeyFrames.cs
- DataPagerFieldItem.cs
- WindowsTreeView.cs
- WebPartZoneBase.cs
- FontClient.cs
- CfgParser.cs
- ProviderMetadataCachedInformation.cs
- ArglessEventHandlerProxy.cs
- ToolStripTextBox.cs
- Filter.cs
- EntityDesignerUtils.cs
- PartBasedPackageProperties.cs
- Msec.cs
- ExpandSegment.cs
- StrongNameIdentityPermission.cs
- _OSSOCK.cs
- TerminatingOperationBehavior.cs
- WmpBitmapEncoder.cs
- ListViewItem.cs
- FileDialog.cs
- FamilyTypeface.cs
- HandleRef.cs
- WindowsButton.cs
- TranslateTransform3D.cs
- ObjectSet.cs
- ModuleElement.cs
- PeerName.cs
- Int32Collection.cs
- MatchingStyle.cs
- UserPersonalizationStateInfo.cs
- SynchronizationValidator.cs
- HMACMD5.cs
- Int16.cs
- OutputCacheEntry.cs
- LogLogRecordHeader.cs
- TypeSource.cs
- WhiteSpaceTrimStringConverter.cs