Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / TransformerInfoCollection.cs / 2 / TransformerInfoCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Security.Principal;
using System.Web;
using System.Web.Compilation;
using System.Web.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.Util;
using System.Xml;
using System.Security.Permissions;
[ConfigurationCollection(typeof(TransformerInfo))]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class TransformerInfoCollection : ConfigurationElementCollection {
private static ConfigurationPropertyCollection _properties;
private Hashtable _transformerEntries;
static TransformerInfoCollection() {
_properties = new ConfigurationPropertyCollection();
}
///
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
public TransformerInfo this[int index] {
get {
return (TransformerInfo)BaseGet(index);
}
set {
if (BaseGet(index) != null) {
BaseRemoveAt(index);
}
BaseAdd(index, value);
}
}
public void Add(TransformerInfo transformerInfo) {
BaseAdd(transformerInfo);
}
public void Clear() {
BaseClear();
}
///
protected override ConfigurationElement CreateNewElement() {
return new TransformerInfo();
}
public void Remove(string s) {
BaseRemove(s);
}
public void RemoveAt(int index) {
BaseRemoveAt(index);
}
///
protected override object GetElementKey(ConfigurationElement element) {
return ((TransformerInfo)element).Name;
}
internal Hashtable GetTransformerEntries() {
if (_transformerEntries == null) {
lock (this) {
if (_transformerEntries == null) {
_transformerEntries = new Hashtable(StringComparer.OrdinalIgnoreCase);
foreach (TransformerInfo ti in this) {
Type transformerType = ConfigUtil.GetType(ti.Type, "type", ti);
if (transformerType.IsSubclassOf(typeof(WebPartTransformer)) == false) {
throw new ConfigurationErrorsException(
SR.GetString(
SR.Type_doesnt_inherit_from_type,
ti.Type,
typeof(WebPartTransformer).FullName),
ti.ElementInformation.Properties["type"].Source,
ti.ElementInformation.Properties["type"].LineNumber);
}
Type consumerType;
Type providerType;
try {
consumerType = WebPartTransformerAttribute.GetConsumerType(transformerType);
providerType = WebPartTransformerAttribute.GetProviderType(transformerType);
}
catch (Exception e) {
throw new ConfigurationErrorsException(
SR.GetString(SR.Transformer_attribute_error, e.Message),
e,
ti.ElementInformation.Properties["type"].Source,
ti.ElementInformation.Properties["type"].LineNumber);
}
if (_transformerEntries.Count != 0) {
foreach (DictionaryEntry entry in _transformerEntries) {
Type existingTransformerType = (Type)entry.Value;
// We know these methods will not throw, because for the type to be in the transformers
// collection, we must have successfully gotten the types previously without an exception.
Type existingConsumerType =
WebPartTransformerAttribute.GetConsumerType(existingTransformerType);
Type existingProviderType =
WebPartTransformerAttribute.GetProviderType(existingTransformerType);
if ((consumerType == existingConsumerType) && (providerType == existingProviderType)) {
throw new ConfigurationErrorsException(
SR.GetString(
SR.Transformer_types_already_added,
(string)entry.Key,
ti.Name),
ti.ElementInformation.Properties["type"].Source,
ti.ElementInformation.Properties["type"].LineNumber);
}
}
}
_transformerEntries[ti.Name] = transformerType;
}
}
}
}
//
return _transformerEntries;
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BinaryConverter.cs
- ColumnHeader.cs
- CriticalExceptions.cs
- Container.cs
- InstancePersistenceException.cs
- StringFunctions.cs
- ConfigUtil.cs
- RotateTransform.cs
- ReadOnlyDataSource.cs
- MsmqBindingMonitor.cs
- WindowsProgressbar.cs
- NameValueSectionHandler.cs
- SafeRegistryKey.cs
- MetadataProperty.cs
- DCSafeHandle.cs
- WindowPatternIdentifiers.cs
- ListBoxItem.cs
- ElementMarkupObject.cs
- Canonicalizers.cs
- CollectionBuilder.cs
- BindingGroup.cs
- ConfigsHelper.cs
- GridViewDeletedEventArgs.cs
- Camera.cs
- IncrementalReadDecoders.cs
- ObjectListItemCollection.cs
- SerializerProvider.cs
- ConditionValidator.cs
- ServiceAuthorizationElement.cs
- DecimalConstantAttribute.cs
- SessionEndingCancelEventArgs.cs
- Grammar.cs
- ScrollProperties.cs
- RNGCryptoServiceProvider.cs
- CustomValidator.cs
- MarkupWriter.cs
- Vector.cs
- DataGridColumn.cs
- TableHeaderCell.cs
- EntityKey.cs
- SettingsAttributeDictionary.cs
- CollectionTraceRecord.cs
- RbTree.cs
- CodeDelegateCreateExpression.cs
- Visitor.cs
- BitArray.cs
- _AcceptOverlappedAsyncResult.cs
- DesignTimeParseData.cs
- ExpressionNode.cs
- LinqDataSourceHelper.cs
- FontUnit.cs
- HtmlEmptyTagControlBuilder.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- CompilerScopeManager.cs
- SpotLight.cs
- RecipientInfo.cs
- FragmentQuery.cs
- XmlQueryStaticData.cs
- DataGridViewCheckBoxColumn.cs
- SafeNativeMethodsOther.cs
- RegisteredArrayDeclaration.cs
- EntityProxyFactory.cs
- RectangleHotSpot.cs
- ZoneIdentityPermission.cs
- HtmlTableCell.cs
- SQLBytes.cs
- ExtendedProperty.cs
- ItemType.cs
- ScrollProperties.cs
- SoapServerProtocol.cs
- NamedPipeProcessProtocolHandler.cs
- SwitchElementsCollection.cs
- SpeakCompletedEventArgs.cs
- StaticTextPointer.cs
- DataGridViewSelectedCellCollection.cs
- CultureMapper.cs
- RenderData.cs
- ConstraintEnumerator.cs
- Evaluator.cs
- MulticastIPAddressInformationCollection.cs
- SiteMapDataSourceView.cs
- WebSysDescriptionAttribute.cs
- BoolExpression.cs
- CollectionType.cs
- PinnedBufferMemoryStream.cs
- HasCopySemanticsAttribute.cs
- Rectangle.cs
- XmlSerializerAssemblyAttribute.cs
- DerivedKeySecurityToken.cs
- BlurBitmapEffect.cs
- EntityDataSourceContextDisposingEventArgs.cs
- SplitterDesigner.cs
- WebPartMenuStyle.cs
- RSACryptoServiceProvider.cs
- GacUtil.cs
- XPathDescendantIterator.cs
- SafeProcessHandle.cs
- ThreadSafeList.cs
- ComponentResourceKey.cs
- GridViewCellAutomationPeer.cs