Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Configuration / ProtocolElementCollection.cs / 1305376 / ProtocolElementCollection.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Web.Services.Configuration
{
using System;
using System.Collections;
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
using System.Security.Permissions;
[ConfigurationCollection(typeof(ProtocolElement))]
public sealed class ProtocolElementCollection : ConfigurationElementCollection
{
public void Add(ProtocolElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
BaseAdd(element);
}
public void Clear()
{
BaseClear();
}
public bool ContainsKey(object key)
{
if (key == null)
{
throw new ArgumentNullException("key");
}
return this.BaseGet(key) != null;
}
protected override ConfigurationElement CreateNewElement()
{
return new ProtocolElement();
}
public void CopyTo(ProtocolElement[] array, int index)
{
if (array == null)
{
throw new ArgumentNullException("array");
}
((ICollection)this).CopyTo(array, index);
}
protected override Object GetElementKey(ConfigurationElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
ProtocolElement configElementKey = (ProtocolElement)element;
return configElementKey.Name.ToString();
}
public int IndexOf(ProtocolElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
return BaseIndexOf(element);
}
public void Remove(ProtocolElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
BaseRemove(GetElementKey(element));
}
public void RemoveAt(object key)
{
if (key == null)
{
throw new ArgumentNullException("key");
}
BaseRemove(key);
}
public void RemoveAt(int index)
{
BaseRemoveAt(index);
}
internal void SetDefaults()
{
ProtocolElement httpSoap12Element = new ProtocolElement(WebServiceProtocols.HttpSoap12);
ProtocolElement httpSoapElement = new ProtocolElement(WebServiceProtocols.HttpSoap);
ProtocolElement httpPostLocalhostElement = new ProtocolElement(WebServiceProtocols.HttpPostLocalhost);
ProtocolElement documentationElement = new ProtocolElement(WebServiceProtocols.Documentation);
this.Add(httpSoap12Element);
this.Add(httpSoapElement);
this.Add(httpPostLocalhostElement);
this.Add(documentationElement);
}
public ProtocolElement this[object key]
{
get
{
if (key == null)
{
throw new ArgumentNullException("key");
}
ProtocolElement retval = (ProtocolElement)this.BaseGet(key);
if (retval == null)
{
throw new System.Collections.Generic.KeyNotFoundException(
string.Format(CultureInfo.InvariantCulture,
Res.GetString(Res.ConfigKeyNotFoundInElementCollection),
key.ToString()));
}
return retval;
}
set
{
if (value == null)
{
throw new ArgumentNullException("value");
}
if (key == null)
{
throw new ArgumentNullException("key");
}
// NOTE [ivelin : integration fix] The change bellow have the issue that it wont use the collection comparer
// if one is specified. We ( System.Configuration ) usually avoid having set_item[ key ] when the element contains
// the key and instead provide an Add( element ) method only.
if ( this.GetElementKey(value).Equals(key))
{
if (BaseGet(key) != null)
{
BaseRemove(key);
}
Add(value);
}
else
{
throw new ArgumentException(string.Format(CultureInfo.InvariantCulture,
Res.GetString(Res.ConfigKeysDoNotMatch), this.GetElementKey(value).ToString(),
key.ToString()));
}
}
}
public ProtocolElement this[int index]
{
get
{
return (ProtocolElement)BaseGet(index);
}
set
{
if (BaseGet(index) != null)
{
BaseRemoveAt(index);
}
BaseAdd(index,value);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Web.Services.Configuration
{
using System;
using System.Collections;
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
using System.Security.Permissions;
[ConfigurationCollection(typeof(ProtocolElement))]
public sealed class ProtocolElementCollection : ConfigurationElementCollection
{
public void Add(ProtocolElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
BaseAdd(element);
}
public void Clear()
{
BaseClear();
}
public bool ContainsKey(object key)
{
if (key == null)
{
throw new ArgumentNullException("key");
}
return this.BaseGet(key) != null;
}
protected override ConfigurationElement CreateNewElement()
{
return new ProtocolElement();
}
public void CopyTo(ProtocolElement[] array, int index)
{
if (array == null)
{
throw new ArgumentNullException("array");
}
((ICollection)this).CopyTo(array, index);
}
protected override Object GetElementKey(ConfigurationElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
ProtocolElement configElementKey = (ProtocolElement)element;
return configElementKey.Name.ToString();
}
public int IndexOf(ProtocolElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
return BaseIndexOf(element);
}
public void Remove(ProtocolElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
BaseRemove(GetElementKey(element));
}
public void RemoveAt(object key)
{
if (key == null)
{
throw new ArgumentNullException("key");
}
BaseRemove(key);
}
public void RemoveAt(int index)
{
BaseRemoveAt(index);
}
internal void SetDefaults()
{
ProtocolElement httpSoap12Element = new ProtocolElement(WebServiceProtocols.HttpSoap12);
ProtocolElement httpSoapElement = new ProtocolElement(WebServiceProtocols.HttpSoap);
ProtocolElement httpPostLocalhostElement = new ProtocolElement(WebServiceProtocols.HttpPostLocalhost);
ProtocolElement documentationElement = new ProtocolElement(WebServiceProtocols.Documentation);
this.Add(httpSoap12Element);
this.Add(httpSoapElement);
this.Add(httpPostLocalhostElement);
this.Add(documentationElement);
}
public ProtocolElement this[object key]
{
get
{
if (key == null)
{
throw new ArgumentNullException("key");
}
ProtocolElement retval = (ProtocolElement)this.BaseGet(key);
if (retval == null)
{
throw new System.Collections.Generic.KeyNotFoundException(
string.Format(CultureInfo.InvariantCulture,
Res.GetString(Res.ConfigKeyNotFoundInElementCollection),
key.ToString()));
}
return retval;
}
set
{
if (value == null)
{
throw new ArgumentNullException("value");
}
if (key == null)
{
throw new ArgumentNullException("key");
}
// NOTE [ivelin : integration fix] The change bellow have the issue that it wont use the collection comparer
// if one is specified. We ( System.Configuration ) usually avoid having set_item[ key ] when the element contains
// the key and instead provide an Add( element ) method only.
if ( this.GetElementKey(value).Equals(key))
{
if (BaseGet(key) != null)
{
BaseRemove(key);
}
Add(value);
}
else
{
throw new ArgumentException(string.Format(CultureInfo.InvariantCulture,
Res.GetString(Res.ConfigKeysDoNotMatch), this.GetElementKey(value).ToString(),
key.ToString()));
}
}
}
public ProtocolElement this[int index]
{
get
{
return (ProtocolElement)BaseGet(index);
}
set
{
if (BaseGet(index) != null)
{
BaseRemoveAt(index);
}
BaseAdd(index,value);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HostingEnvironmentException.cs
- DSASignatureFormatter.cs
- CustomAttributeBuilder.cs
- PropertyNames.cs
- LinqDataSourceStatusEventArgs.cs
- WebPartConnectionsCancelVerb.cs
- TreeView.cs
- ResourcePermissionBase.cs
- LinqTreeNodeEvaluator.cs
- TreeBuilderBamlTranslator.cs
- PropertyValueUIItem.cs
- ActivityDesigner.cs
- HttpHandlerAction.cs
- StagingAreaInputItem.cs
- Hash.cs
- SingleKeyFrameCollection.cs
- DataGridCell.cs
- DataGridRowHeaderAutomationPeer.cs
- DispatchProxy.cs
- Point3DCollectionConverter.cs
- StateChangeEvent.cs
- DrawingImage.cs
- MediaTimeline.cs
- Drawing.cs
- TextWriter.cs
- AbstractSvcMapFileLoader.cs
- LiteralControl.cs
- HttpCookieCollection.cs
- System.Data_BID.cs
- EnumConverter.cs
- SyndicationDeserializer.cs
- XmlWrappingWriter.cs
- IItemProperties.cs
- CurrencyManager.cs
- HttpListenerException.cs
- ResourceDictionaryCollection.cs
- GridViewActionList.cs
- UrlMapping.cs
- StateElementCollection.cs
- HwndStylusInputProvider.cs
- PartialCachingAttribute.cs
- DataControlLinkButton.cs
- ForceCopyBuildProvider.cs
- OleDbRowUpdatingEvent.cs
- HelpKeywordAttribute.cs
- Profiler.cs
- XmlNamespaceMappingCollection.cs
- AnnotationHelper.cs
- BaseCAMarshaler.cs
- TextParentUndoUnit.cs
- DataGridViewCellStyleEditor.cs
- Configuration.cs
- MoveSizeWinEventHandler.cs
- HtmlUtf8RawTextWriter.cs
- ResourceProviderFactory.cs
- InvokeFunc.cs
- EntityStoreSchemaFilterEntry.cs
- ColorBlend.cs
- GraphicsContext.cs
- ValidationEventArgs.cs
- DataGridBoolColumn.cs
- BaseTemplateBuildProvider.cs
- DataKey.cs
- WindowsListViewItem.cs
- SqlLiftWhereClauses.cs
- EntitySet.cs
- IApplicationTrustManager.cs
- DebugControllerThread.cs
- DES.cs
- PipeConnection.cs
- GC.cs
- IteratorFilter.cs
- ToolStripComboBox.cs
- URI.cs
- ApplicationHost.cs
- SafeMemoryMappedViewHandle.cs
- ResolveNextArgumentWorkItem.cs
- ExpandableObjectConverter.cs
- OleDbStruct.cs
- ProcessThreadDesigner.cs
- DataBindingExpressionBuilder.cs
- SharedUtils.cs
- BaseAddressPrefixFilterElement.cs
- HtmlFormWrapper.cs
- DoubleAnimationClockResource.cs
- MappingItemCollection.cs
- EntityDataSourceWrapper.cs
- ServiceHostingEnvironment.cs
- CallTemplateAction.cs
- EnumType.cs
- UnsafeNativeMethods.cs
- ExtensionsSection.cs
- ConditionCollection.cs
- StandardOleMarshalObject.cs
- MultilineStringEditor.cs
- ToolStripTextBox.cs
- MembershipValidatePasswordEventArgs.cs
- HMAC.cs
- SelectorAutomationPeer.cs
- TextTreeTextBlock.cs