Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Configuration / TypeElementCollection.cs / 1305376 / TypeElementCollection.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(TypeElement))]
public sealed class TypeElementCollection : ConfigurationElementCollection
{
public void Add(TypeElement 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 TypeElement();
}
public void CopyTo(TypeElement[] 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");
}
TypeElement configElementKey = (TypeElement)element;
return configElementKey.Type;
}
public int IndexOf(TypeElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
return BaseIndexOf(element);
}
public void Remove(TypeElement 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);
}
public TypeElement this[object key]
{
get
{
if (key == null)
{
throw new ArgumentNullException("key");
}
TypeElement retval = (TypeElement)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 TypeElement this[int index]
{
get
{
return (TypeElement)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(TypeElement))]
public sealed class TypeElementCollection : ConfigurationElementCollection
{
public void Add(TypeElement 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 TypeElement();
}
public void CopyTo(TypeElement[] 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");
}
TypeElement configElementKey = (TypeElement)element;
return configElementKey.Type;
}
public int IndexOf(TypeElement element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
return BaseIndexOf(element);
}
public void Remove(TypeElement 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);
}
public TypeElement this[object key]
{
get
{
if (key == null)
{
throw new ArgumentNullException("key");
}
TypeElement retval = (TypeElement)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 TypeElement this[int index]
{
get
{
return (TypeElement)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
- ProtocolViolationException.cs
- BulletedListDesigner.cs
- StreamHelper.cs
- WorkflowServiceHostFactory.cs
- SelectedGridItemChangedEvent.cs
- CoreSwitches.cs
- filewebrequest.cs
- GridViewRowPresenter.cs
- MailDefinition.cs
- Hash.cs
- PageRanges.cs
- ProcessModuleCollection.cs
- SqlEnums.cs
- ByteFacetDescriptionElement.cs
- BindableTemplateBuilder.cs
- BamlRecordReader.cs
- InheritanceContextChangedEventManager.cs
- GeometryCombineModeValidation.cs
- BigInt.cs
- ImageProxy.cs
- DefaultBinder.cs
- ReferenceEqualityComparer.cs
- Native.cs
- BinaryFormatterWriter.cs
- CalendarDataBindingHandler.cs
- AssemblySettingAttributes.cs
- WindowsImpersonationContext.cs
- DataGridViewCellFormattingEventArgs.cs
- PropertyDescriptorCollection.cs
- RangeValuePattern.cs
- MimeFormatter.cs
- BulletChrome.cs
- Crc32.cs
- RegexCapture.cs
- JavascriptCallbackResponseProperty.cs
- SoapIgnoreAttribute.cs
- TreeNodeBindingCollection.cs
- TrustManager.cs
- Listbox.cs
- OAVariantLib.cs
- SoapFormatExtensions.cs
- LinqDataSourceSelectEventArgs.cs
- PropertySourceInfo.cs
- ExecutionContext.cs
- WebPartCollection.cs
- AttributeAction.cs
- CopyNodeSetAction.cs
- OLEDB_Util.cs
- ToolStripSystemRenderer.cs
- Timer.cs
- SamlAttributeStatement.cs
- WebPartEventArgs.cs
- SmtpAuthenticationManager.cs
- DocumentOrderQuery.cs
- ListItem.cs
- UrlUtility.cs
- UIElementParaClient.cs
- HwndHostAutomationPeer.cs
- NativeCppClassAttribute.cs
- WebPartCollection.cs
- Debug.cs
- PlainXmlDeserializer.cs
- SqlAliasesReferenced.cs
- ShortcutKeysEditor.cs
- DPCustomTypeDescriptor.cs
- MSAAWinEventWrap.cs
- ReservationNotFoundException.cs
- HtmlInputText.cs
- UnsafePeerToPeerMethods.cs
- PartBasedPackageProperties.cs
- XmlDomTextWriter.cs
- DrawingContextWalker.cs
- WebServiceReceiveDesigner.cs
- odbcmetadatafactory.cs
- ThumbButtonInfo.cs
- XmlSchemaElement.cs
- BinaryObjectReader.cs
- DataServiceHostFactory.cs
- DataGridViewLinkColumn.cs
- MaskDescriptors.cs
- OdbcStatementHandle.cs
- TagMapInfo.cs
- InvalidAsynchronousStateException.cs
- TextSchema.cs
- AvTraceFormat.cs
- TokenBasedSet.cs
- DoubleLink.cs
- DbConnectionOptions.cs
- FileReservationCollection.cs
- QilTernary.cs
- LinqToSqlWrapper.cs
- MailDefinition.cs
- SkinBuilder.cs
- ProfileSettings.cs
- StringValueSerializer.cs
- HtmlControl.cs
- XmlArrayItemAttributes.cs
- DashStyle.cs
- UrlMappingsModule.cs
- FontDifferentiator.cs