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
- categoryentry.cs
- TextFormatterImp.cs
- StylusPoint.cs
- HttpDebugHandler.cs
- XmlEventCache.cs
- SessionStateUtil.cs
- HttpContext.cs
- DesignerActionPropertyItem.cs
- EventBuilder.cs
- ErrorFormatter.cs
- LambdaCompiler.Statements.cs
- KeyFrames.cs
- Expression.cs
- PtsCache.cs
- SettingsAttributeDictionary.cs
- ProcessThreadDesigner.cs
- HtmlInputImage.cs
- RsaSecurityToken.cs
- Encoding.cs
- StringResourceManager.cs
- SponsorHelper.cs
- HtmlInputPassword.cs
- ProviderMetadata.cs
- CodeExpressionStatement.cs
- RangeValidator.cs
- TitleStyle.cs
- IDQuery.cs
- ClonableStack.cs
- DocumentReference.cs
- DataViewManagerListItemTypeDescriptor.cs
- XmlSchemaAttributeGroup.cs
- VarRemapper.cs
- TrackingDataItemValue.cs
- Vector.cs
- DashStyle.cs
- RenderData.cs
- XmlReflectionMember.cs
- ParserOptions.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- CommentAction.cs
- CommandHelpers.cs
- StatusBarItemAutomationPeer.cs
- AttachedPropertyMethodSelector.cs
- StructuredProperty.cs
- SqlInternalConnection.cs
- ObfuscationAttribute.cs
- BindingCollection.cs
- GenericAuthenticationEventArgs.cs
- ColorConvertedBitmapExtension.cs
- ImageMap.cs
- PenCursorManager.cs
- NativeMethods.cs
- PseudoWebRequest.cs
- PropertyCondition.cs
- LinkButton.cs
- PrivateFontCollection.cs
- EmbossBitmapEffect.cs
- UnsafeNativeMethods.cs
- ObjectTypeMapping.cs
- Nodes.cs
- StylusCollection.cs
- Configuration.cs
- SqlBooleanizer.cs
- EDesignUtil.cs
- AppSettings.cs
- TripleDESCryptoServiceProvider.cs
- SmtpException.cs
- ZoneButton.cs
- MultiByteCodec.cs
- NeutralResourcesLanguageAttribute.cs
- FillRuleValidation.cs
- SqlProcedureAttribute.cs
- SafeLibraryHandle.cs
- AutomationProperty.cs
- BooleanExpr.cs
- Privilege.cs
- SkewTransform.cs
- WebBaseEventKeyComparer.cs
- ParamArrayAttribute.cs
- MenuItemCollection.cs
- _TimerThread.cs
- PerformanceCounterLib.cs
- SocketInformation.cs
- SamlSecurityToken.cs
- Trace.cs
- Base64Encoder.cs
- PreservationFileReader.cs
- TableCell.cs
- BackgroundFormatInfo.cs
- ProviderMetadataCachedInformation.cs
- SamlAttribute.cs
- ContextMenuStripGroup.cs
- ReadOnlyDataSourceView.cs
- WebPartConnection.cs
- DragAssistanceManager.cs
- CheckBoxRenderer.cs
- BooleanExpr.cs
- TextLineBreak.cs
- PropertyMappingExceptionEventArgs.cs
- HttpServerUtilityBase.cs