Code:
/ FX-1434 / FX-1434 / 1.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
- DoubleLinkList.cs
- QilChoice.cs
- ProtocolsConfiguration.cs
- ThicknessKeyFrameCollection.cs
- cookiecontainer.cs
- ErrorItem.cs
- StaticTextPointer.cs
- TokenFactoryBase.cs
- InputScopeConverter.cs
- LinearGradientBrush.cs
- DefaultValueTypeConverter.cs
- XamlRtfConverter.cs
- ViewManager.cs
- DataGridTableCollection.cs
- HostProtectionException.cs
- KeyFrames.cs
- BoundsDrawingContextWalker.cs
- VariantWrapper.cs
- ViewStateChangedEventArgs.cs
- ReadOnlyCollection.cs
- initElementDictionary.cs
- ActivityExecutor.cs
- MsmqOutputSessionChannel.cs
- CultureInfo.cs
- Panel.cs
- DataRelationPropertyDescriptor.cs
- InputLangChangeEvent.cs
- DragDrop.cs
- Control.cs
- DayRenderEvent.cs
- ByteAnimation.cs
- AnnotationComponentManager.cs
- Deserializer.cs
- Avt.cs
- DataGridState.cs
- CurrentTimeZone.cs
- CompoundFileStorageReference.cs
- NamedObject.cs
- SelectionProviderWrapper.cs
- DiagnosticTraceSource.cs
- DataGridViewBindingCompleteEventArgs.cs
- ProfileSettings.cs
- TextTreeObjectNode.cs
- Semaphore.cs
- XmlSchemaObject.cs
- XmlDataSourceNodeDescriptor.cs
- AssociationEndMember.cs
- UnsafeNativeMethods.cs
- CatalogZone.cs
- SignedXmlDebugLog.cs
- DataGridItem.cs
- ThicknessConverter.cs
- X509Utils.cs
- ToolStripButton.cs
- DesignerDataSourceView.cs
- XsdBuilder.cs
- COM2PropertyBuilderUITypeEditor.cs
- SafeProcessHandle.cs
- DurableMessageDispatchInspector.cs
- CreateBookmarkScope.cs
- AdCreatedEventArgs.cs
- AnimatedTypeHelpers.cs
- SecurityCookieModeValidator.cs
- DummyDataSource.cs
- FacetDescription.cs
- CompilerParameters.cs
- AdornerDecorator.cs
- ServiceHttpHandlerFactory.cs
- GetPageCompletedEventArgs.cs
- DispatchWrapper.cs
- EntityClassGenerator.cs
- WhitespaceRuleReader.cs
- FormsAuthenticationModule.cs
- StateManagedCollection.cs
- ValidatingReaderNodeData.cs
- PointUtil.cs
- DataServiceProviderWrapper.cs
- IssuanceLicense.cs
- EntityContainer.cs
- DocumentViewerConstants.cs
- ActiveDocumentEvent.cs
- Paragraph.cs
- DiagnosticsConfiguration.cs
- Membership.cs
- Compiler.cs
- KnownAssembliesSet.cs
- AppDomainManager.cs
- ECDiffieHellmanCng.cs
- ColorTransform.cs
- GroupDescription.cs
- DetailsViewUpdateEventArgs.cs
- DataGridRowHeaderAutomationPeer.cs
- TailCallAnalyzer.cs
- SortQuery.cs
- _LoggingObject.cs
- XmlSchemaComplexType.cs
- DataGridViewRowHeaderCell.cs
- MediaTimeline.cs
- IUnknownConstantAttribute.cs
- SafeNativeMethods.cs