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
- TextElementAutomationPeer.cs
- MenuItemCollection.cs
- MSAAWinEventWrap.cs
- HebrewNumber.cs
- AnimationException.cs
- XmlDownloadManager.cs
- TableParagraph.cs
- AbandonedMutexException.cs
- MessageRpc.cs
- ComponentConverter.cs
- EndpointBehaviorElementCollection.cs
- HWStack.cs
- UIElement3DAutomationPeer.cs
- PointAnimation.cs
- DayRenderEvent.cs
- VariableDesigner.xaml.cs
- PenThreadWorker.cs
- SystemColorTracker.cs
- TemplateBaseAction.cs
- translator.cs
- VSWCFServiceContractGenerator.cs
- MimeTypeMapper.cs
- StreamReader.cs
- InternalCache.cs
- WinEventHandler.cs
- StringResourceManager.cs
- DataKey.cs
- LogLogRecordEnumerator.cs
- FixedPosition.cs
- HttpEncoderUtility.cs
- WebMessageBodyStyleHelper.cs
- OverflowException.cs
- PathFigureCollectionValueSerializer.cs
- ReplacementText.cs
- EditorZone.cs
- DataContractSerializerOperationFormatter.cs
- SerializerWriterEventHandlers.cs
- SystemIPAddressInformation.cs
- DataGridHeaderBorder.cs
- UrlMapping.cs
- ContainerParagraph.cs
- BuildProvidersCompiler.cs
- InplaceBitmapMetadataWriter.cs
- HandlerMappingMemo.cs
- PaperSize.cs
- DocumentGrid.cs
- ValueChangedEventManager.cs
- SafeCertificateContext.cs
- ToolStripDropTargetManager.cs
- MembershipPasswordException.cs
- QilSortKey.cs
- TabPage.cs
- SerializationAttributes.cs
- HtmlProps.cs
- Converter.cs
- HttpHandlersSection.cs
- ListBoxItemWrapperAutomationPeer.cs
- AutoGeneratedFieldProperties.cs
- shaperfactory.cs
- SqlTypeConverter.cs
- XsltContext.cs
- ColorConvertedBitmap.cs
- GradientBrush.cs
- SafeNativeMethodsCLR.cs
- CodeDefaultValueExpression.cs
- SizeIndependentAnimationStorage.cs
- ToolStripContentPanel.cs
- DbgUtil.cs
- WebMethodAttribute.cs
- XPathNodeList.cs
- GC.cs
- ToolStripContentPanelDesigner.cs
- XslCompiledTransform.cs
- ListBox.cs
- _Rfc2616CacheValidators.cs
- StorageComplexPropertyMapping.cs
- SharedDp.cs
- QuaternionValueSerializer.cs
- SessionStateItemCollection.cs
- ValueHandle.cs
- SwitchAttribute.cs
- ResourceContainer.cs
- EdmMember.cs
- ParameterElementCollection.cs
- SortQuery.cs
- LinkedList.cs
- DayRenderEvent.cs
- FakeModelItemImpl.cs
- DrawListViewColumnHeaderEventArgs.cs
- COMException.cs
- SqlGatherProducedAliases.cs
- Highlights.cs
- XmlIterators.cs
- MetadataItem_Static.cs
- LocalIdCollection.cs
- XmlSchemaType.cs
- InplaceBitmapMetadataWriter.cs
- PropertyRecord.cs
- WindowsProgressbar.cs
- CodeConditionStatement.cs