Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / TagMapCollection.cs / 3 / TagMapCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System;
using System.Xml;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
using System.IO;
using System.Text;
using System.Web.Util;
using System.Web.UI;
using System.Web.Compilation;
using System.Threading;
using System.Web.Configuration;
using System.Security.Permissions;
[ConfigurationCollection(typeof(TagMapInfo))]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class TagMapCollection : ConfigurationElementCollection {
private static ConfigurationPropertyCollection _properties;
private Hashtable _tagMappings;
static TagMapCollection() {
// Property initialization
_properties = new ConfigurationPropertyCollection();
}
public TagMapCollection() {
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
public TagMapInfo this[int index] {
get {
return (TagMapInfo)BaseGet(index);
}
set {
if (BaseGet(index) != null) {
BaseRemoveAt(index);
}
BaseAdd(index, value);
}
}
public void Add(TagMapInfo tagMapInformation) {
BaseAdd(tagMapInformation);
}
public void Remove(TagMapInfo tagMapInformation) {
BaseRemove(GetElementKey(tagMapInformation));
}
public void Clear() {
BaseClear();
}
protected override ConfigurationElement CreateNewElement() {
return new TagMapInfo();
}
protected override Object GetElementKey(ConfigurationElement element) {
return ((TagMapInfo)element).TagType;
}
internal Hashtable TagTypeMappingInternal {
get {
if (_tagMappings == null) {
lock (this) {
if (_tagMappings == null) {
Hashtable tagMappings = new Hashtable(StringComparer.OrdinalIgnoreCase);
foreach (TagMapInfo tmi in this) {
Type tagType = ConfigUtil.GetType(tmi.TagType, "tagType", tmi);
Type mappedTagType = ConfigUtil.GetType(tmi.MappedTagType, "mappedTagType", tmi);
if (tagType.IsAssignableFrom(mappedTagType) == false) {
throw new ConfigurationErrorsException(
SR.GetString(
SR.Mapped_type_must_inherit,
tmi.MappedTagType,
tmi.TagType),
tmi.ElementInformation.Properties["mappedTagType"].Source,
tmi.ElementInformation.Properties["mappedTagType"].LineNumber);
}
tagMappings[tagType] = mappedTagType;
}
_tagMappings = tagMappings;
}
}
}
return _tagMappings;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System;
using System.Xml;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
using System.IO;
using System.Text;
using System.Web.Util;
using System.Web.UI;
using System.Web.Compilation;
using System.Threading;
using System.Web.Configuration;
using System.Security.Permissions;
[ConfigurationCollection(typeof(TagMapInfo))]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class TagMapCollection : ConfigurationElementCollection {
private static ConfigurationPropertyCollection _properties;
private Hashtable _tagMappings;
static TagMapCollection() {
// Property initialization
_properties = new ConfigurationPropertyCollection();
}
public TagMapCollection() {
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
public TagMapInfo this[int index] {
get {
return (TagMapInfo)BaseGet(index);
}
set {
if (BaseGet(index) != null) {
BaseRemoveAt(index);
}
BaseAdd(index, value);
}
}
public void Add(TagMapInfo tagMapInformation) {
BaseAdd(tagMapInformation);
}
public void Remove(TagMapInfo tagMapInformation) {
BaseRemove(GetElementKey(tagMapInformation));
}
public void Clear() {
BaseClear();
}
protected override ConfigurationElement CreateNewElement() {
return new TagMapInfo();
}
protected override Object GetElementKey(ConfigurationElement element) {
return ((TagMapInfo)element).TagType;
}
internal Hashtable TagTypeMappingInternal {
get {
if (_tagMappings == null) {
lock (this) {
if (_tagMappings == null) {
Hashtable tagMappings = new Hashtable(StringComparer.OrdinalIgnoreCase);
foreach (TagMapInfo tmi in this) {
Type tagType = ConfigUtil.GetType(tmi.TagType, "tagType", tmi);
Type mappedTagType = ConfigUtil.GetType(tmi.MappedTagType, "mappedTagType", tmi);
if (tagType.IsAssignableFrom(mappedTagType) == false) {
throw new ConfigurationErrorsException(
SR.GetString(
SR.Mapped_type_must_inherit,
tmi.MappedTagType,
tmi.TagType),
tmi.ElementInformation.Properties["mappedTagType"].Source,
tmi.ElementInformation.Properties["mappedTagType"].LineNumber);
}
tagMappings[tagType] = mappedTagType;
}
_tagMappings = tagMappings;
}
}
}
return _tagMappings;
}
}
}
}
// 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
- PtsPage.cs
- AudioException.cs
- XmlSignatureManifest.cs
- StickyNote.cs
- OperatorExpressions.cs
- Object.cs
- HttpRequest.cs
- DecimalAnimation.cs
- NotificationContext.cs
- ObjectDataSourceDisposingEventArgs.cs
- RegistrationServices.cs
- OleTxTransactionInfo.cs
- EndGetFileNameFromUserRequest.cs
- ObjectContextServiceProvider.cs
- COM2ExtendedUITypeEditor.cs
- TextSpanModifier.cs
- SingleTagSectionHandler.cs
- SecureConversationSecurityTokenParameters.cs
- DBCommandBuilder.cs
- DataColumnPropertyDescriptor.cs
- RoleManagerEventArgs.cs
- ControlsConfig.cs
- Help.cs
- BitStream.cs
- PageHandlerFactory.cs
- DelayDesigner.cs
- ErrorTableItemStyle.cs
- FtpRequestCacheValidator.cs
- MediaScriptCommandRoutedEventArgs.cs
- ToolboxComponentsCreatedEventArgs.cs
- CategoryAttribute.cs
- BatchParser.cs
- ScaleTransform.cs
- ResourceBinder.cs
- HashCryptoHandle.cs
- CheckBoxBaseAdapter.cs
- ContextItemManager.cs
- AssemblyAttributesGoHere.cs
- RuleCache.cs
- TextElementCollection.cs
- SqlDataSourceQuery.cs
- XmlBindingWorker.cs
- JsonQNameDataContract.cs
- BamlWriter.cs
- BrushValueSerializer.cs
- SmtpClient.cs
- QuadraticBezierSegment.cs
- DataBoundControl.cs
- FormatterServices.cs
- MimeFormImporter.cs
- BitmapEffectInputData.cs
- UnSafeCharBuffer.cs
- XmlAttributeOverrides.cs
- SafePEFileHandle.cs
- FlowDocumentFormatter.cs
- DynamicExpression.cs
- AssociationProvider.cs
- KoreanCalendar.cs
- SpeechSeg.cs
- JsonClassDataContract.cs
- DataGridColumnCollection.cs
- PageContent.cs
- SystemInfo.cs
- RegisteredDisposeScript.cs
- EastAsianLunisolarCalendar.cs
- UIntPtr.cs
- FrameAutomationPeer.cs
- BitmapEffectDrawingContextWalker.cs
- UniqueEventHelper.cs
- cache.cs
- RedistVersionInfo.cs
- ParserContext.cs
- TypeDescriptionProvider.cs
- UnsupportedPolicyOptionsException.cs
- AuthStoreRoleProvider.cs
- HostedElements.cs
- VerificationException.cs
- SemanticResultValue.cs
- HttpServerUtilityBase.cs
- FormViewPageEventArgs.cs
- Zone.cs
- DataGridCaption.cs
- TranslateTransform3D.cs
- BindableAttribute.cs
- WindowsRegion.cs
- ValueTable.cs
- InitializeCorrelation.cs
- ComponentEditorPage.cs
- TableParagraph.cs
- ExpressionBuilderContext.cs
- JpegBitmapDecoder.cs
- TextSearch.cs
- XmlSchemaAny.cs
- BufferBuilder.cs
- AnnotationHighlightLayer.cs
- EnumMemberAttribute.cs
- PageCodeDomTreeGenerator.cs
- CapacityStreamGeometryContext.cs
- TypeConverterHelper.cs
- ActivityCodeGenerator.cs