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
- StringFormat.cs
- RotateTransform3D.cs
- MissingMethodException.cs
- SqlRetyper.cs
- DataMemberAttribute.cs
- SizeIndependentAnimationStorage.cs
- SyntaxCheck.cs
- XmlQualifiedName.cs
- DocumentReference.cs
- Native.cs
- CounterCreationData.cs
- BulletedListEventArgs.cs
- ELinqQueryState.cs
- ToolBarTray.cs
- querybuilder.cs
- XmlStreamNodeWriter.cs
- GiveFeedbackEventArgs.cs
- AssemblySettingAttributes.cs
- GenericTypeParameterBuilder.cs
- Span.cs
- OrCondition.cs
- WebConfigurationManager.cs
- ScrollProperties.cs
- LayoutTableCell.cs
- XhtmlBasicCalendarAdapter.cs
- SettingsAttributeDictionary.cs
- SystemWebExtensionsSectionGroup.cs
- RequestCachePolicyConverter.cs
- MenuBindingsEditorForm.cs
- VisualTreeUtils.cs
- SecurityUtils.cs
- XmlTypeAttribute.cs
- ProcessHostMapPath.cs
- UnsafeNativeMethods.cs
- CharacterString.cs
- DataGridTable.cs
- InfoCardKeyedHashAlgorithm.cs
- MarkupCompilePass1.cs
- ClientFormsAuthenticationCredentials.cs
- GradientStop.cs
- TabPage.cs
- SoapEnumAttribute.cs
- GridEntry.cs
- GradientStopCollection.cs
- ADRoleFactory.cs
- DES.cs
- XmlUtilWriter.cs
- FieldNameLookup.cs
- Timer.cs
- HtmlElementErrorEventArgs.cs
- ProvidePropertyAttribute.cs
- SQLInt32.cs
- MessageFormatterConverter.cs
- ClusterRegistryConfigurationProvider.cs
- DeferrableContent.cs
- WebBrowser.cs
- TypeDependencyAttribute.cs
- XmlTextReaderImpl.cs
- WhileDesigner.cs
- EntityKeyElement.cs
- RawStylusSystemGestureInputReport.cs
- ProcessStartInfo.cs
- PointAnimation.cs
- NonParentingControl.cs
- WpfXamlLoader.cs
- XmlILTrace.cs
- BlurEffect.cs
- DataTransferEventArgs.cs
- OciEnlistContext.cs
- DatagramAdapter.cs
- DesignerContextDescriptor.cs
- SamlSubjectStatement.cs
- StreamProxy.cs
- XamlWrapperReaders.cs
- MachinePropertyVariants.cs
- LicenseException.cs
- FamilyTypeface.cs
- XmlSchemaCollection.cs
- StreamResourceInfo.cs
- RadioButtonFlatAdapter.cs
- JsonDeserializer.cs
- MetadataSource.cs
- FileStream.cs
- SerializationAttributes.cs
- RouteCollection.cs
- FileSystemWatcher.cs
- QueueProcessor.cs
- TriState.cs
- _SingleItemRequestCache.cs
- HwndProxyElementProvider.cs
- HtmlHistory.cs
- DataKey.cs
- DynamicMethod.cs
- XmlUtil.cs
- ExpressionBuilder.cs
- ActivationArguments.cs
- AppSettingsExpressionBuilder.cs
- AtlasWeb.Designer.cs
- DependsOnAttribute.cs
- TypeUnloadedException.cs