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
- DockingAttribute.cs
- ClientOptions.cs
- StringCollection.cs
- RawTextInputReport.cs
- TraceContextRecord.cs
- TimeoutException.cs
- HttpApplicationFactory.cs
- EntityProviderFactory.cs
- XmlConvert.cs
- HttpInputStream.cs
- DrawTreeNodeEventArgs.cs
- SqlUtil.cs
- Journal.cs
- Deflater.cs
- EntitySqlQueryState.cs
- FullTextLine.cs
- ObjectListField.cs
- InkCanvasFeedbackAdorner.cs
- Encoder.cs
- InsufficientExecutionStackException.cs
- bindurihelper.cs
- XmlDataImplementation.cs
- DesignBindingValueUIHandler.cs
- UseManagedPresentationBindingElementImporter.cs
- OdbcTransaction.cs
- BulletedListEventArgs.cs
- DriveNotFoundException.cs
- PaperSource.cs
- SessionStateModule.cs
- NavigationCommands.cs
- TreeNodeCollection.cs
- ValidationHelper.cs
- CodeAttributeDeclarationCollection.cs
- ToolStripSeparatorRenderEventArgs.cs
- Configuration.cs
- TextServicesDisplayAttributePropertyRanges.cs
- ReadOnlyNameValueCollection.cs
- DoubleLink.cs
- NativeMethods.cs
- ScriptingSectionGroup.cs
- SqlAliaser.cs
- GuidelineCollection.cs
- ProcessModule.cs
- HtmlTableCell.cs
- ExecutionEngineException.cs
- TheQuery.cs
- StateMachineTimers.cs
- SafeCryptoHandles.cs
- ListViewItem.cs
- XmlNamespaceManager.cs
- LinearKeyFrames.cs
- PackagingUtilities.cs
- RuleSettingsCollection.cs
- InstanceHandleConflictException.cs
- PersonalizableTypeEntry.cs
- FacetValueContainer.cs
- DrawingCollection.cs
- WindowsFormsHostAutomationPeer.cs
- DbTransaction.cs
- StyleBamlTreeBuilder.cs
- BindingOperations.cs
- TypeContext.cs
- LambdaCompiler.Unary.cs
- JavascriptCallbackBehaviorAttribute.cs
- XPathDocument.cs
- RecognizedAudio.cs
- Empty.cs
- ContextMenu.cs
- GridViewAutomationPeer.cs
- HandlerBase.cs
- Animatable.cs
- BypassElementCollection.cs
- XmlElement.cs
- ImplicitInputBrush.cs
- DataGridRow.cs
- FileDialogCustomPlacesCollection.cs
- cookieexception.cs
- StringArrayConverter.cs
- RecognizedAudio.cs
- CodeGotoStatement.cs
- SqlDataSourceRefreshSchemaForm.cs
- ControlAdapter.cs
- StringDictionaryEditor.cs
- ITreeGenerator.cs
- DataServiceStreamResponse.cs
- SqlClientWrapperSmiStream.cs
- CapabilitiesRule.cs
- JpegBitmapDecoder.cs
- Size3D.cs
- JournalNavigationScope.cs
- PathSegment.cs
- DetailsViewCommandEventArgs.cs
- ContainerActivationHelper.cs
- UrlPath.cs
- CodeIterationStatement.cs
- FormViewDeleteEventArgs.cs
- TypeCollectionPropertyEditor.cs
- documentation.cs
- ExpressionLexer.cs
- MetadataItem_Static.cs