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
- SerializationSectionGroup.cs
- TableHeaderCell.cs
- ValidatingReaderNodeData.cs
- recordstate.cs
- TableDetailsRow.cs
- ComplusTypeValidator.cs
- MergeLocalizationDirectives.cs
- WebConfigurationFileMap.cs
- SequenceDesigner.xaml.cs
- Thickness.cs
- GroupStyle.cs
- Light.cs
- XomlCompilerResults.cs
- DataKeyCollection.cs
- Deserializer.cs
- PriorityItem.cs
- FloaterParagraph.cs
- JsonCollectionDataContract.cs
- XsltSettings.cs
- COAUTHINFO.cs
- TemplateBindingExtensionConverter.cs
- DataGridViewCellFormattingEventArgs.cs
- DocobjHost.cs
- ListViewTableRow.cs
- ReaderWriterLockWrapper.cs
- PropertyOverridesDialog.cs
- PhysicalFontFamily.cs
- TemplateControlBuildProvider.cs
- XsdBuildProvider.cs
- GeneralTransform3D.cs
- TypeDescriptionProviderAttribute.cs
- EmbossBitmapEffect.cs
- SqlCommandBuilder.cs
- MultiBindingExpression.cs
- MetabaseServerConfig.cs
- WriteTimeStream.cs
- CanonicalFontFamilyReference.cs
- SapiRecoInterop.cs
- Options.cs
- XmlDataDocument.cs
- BuilderInfo.cs
- SqlGenerator.cs
- OdbcTransaction.cs
- IsolatedStorageFileStream.cs
- SequenceFullException.cs
- Compiler.cs
- XmlEventCache.cs
- PointCollectionConverter.cs
- EntitySqlException.cs
- TrackingQueryElement.cs
- WebBaseEventKeyComparer.cs
- Version.cs
- AppDomainFactory.cs
- PolicyLevel.cs
- TimelineGroup.cs
- ComponentSerializationService.cs
- Geometry3D.cs
- PageThemeParser.cs
- TableColumn.cs
- InputScopeNameConverter.cs
- CompoundFileStorageReference.cs
- OrCondition.cs
- Label.cs
- DesignerView.Commands.cs
- XmlElementList.cs
- NameTable.cs
- RuntimeCompatibilityAttribute.cs
- Query.cs
- DataGridViewRowPrePaintEventArgs.cs
- ColumnPropertiesGroup.cs
- ConnectionProviderAttribute.cs
- ForwardPositionQuery.cs
- PersonalizationEntry.cs
- DependencySource.cs
- DrawListViewItemEventArgs.cs
- RadioButtonAutomationPeer.cs
- EncodingTable.cs
- KeyMatchBuilder.cs
- PackagePart.cs
- PersonalizationAdministration.cs
- NameValueFileSectionHandler.cs
- ConfigErrorGlyph.cs
- XmlDataSourceNodeDescriptor.cs
- RegexGroup.cs
- AtomicFile.cs
- DrawToolTipEventArgs.cs
- DataGridRowAutomationPeer.cs
- RemotingAttributes.cs
- DrawingBrush.cs
- AnnotationResourceCollection.cs
- TemplateBamlRecordReader.cs
- PageTheme.cs
- ExtenderProvidedPropertyAttribute.cs
- PeerCollaborationPermission.cs
- FixedSOMPageConstructor.cs
- RequestResponse.cs
- IntSecurity.cs
- ScrollViewer.cs
- ConnectionString.cs
- VisualProxy.cs