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
- MergePropertyDescriptor.cs
- TextRange.cs
- ManagementObjectCollection.cs
- WorkflowServiceHostFactory.cs
- PagerStyle.cs
- DefaultProxySection.cs
- ReadOnlyHierarchicalDataSource.cs
- DataGridItemEventArgs.cs
- ToolboxItemAttribute.cs
- ProcessModelInfo.cs
- XmlSchemaSequence.cs
- BitmapVisualManager.cs
- InvokeProviderWrapper.cs
- StatusBarDesigner.cs
- PeerName.cs
- GenericArgumentsUpdater.cs
- WindowsGraphics2.cs
- SatelliteContractVersionAttribute.cs
- CompositeFontFamily.cs
- RefreshEventArgs.cs
- IPGlobalProperties.cs
- WebPart.cs
- InternalControlCollection.cs
- FloaterParaClient.cs
- BindingMAnagerBase.cs
- CommonBehaviorsSection.cs
- WeakReference.cs
- DPCustomTypeDescriptor.cs
- ToolStripGripRenderEventArgs.cs
- XmlTextReaderImplHelpers.cs
- HandleRef.cs
- DecimalConstantAttribute.cs
- AssemblyResourceLoader.cs
- BindingContext.cs
- PlatformCulture.cs
- EncoderBestFitFallback.cs
- XPathDocumentNavigator.cs
- BindingSource.cs
- RegexCode.cs
- SchemaDeclBase.cs
- SessionEndedEventArgs.cs
- COM2PropertyDescriptor.cs
- DESCryptoServiceProvider.cs
- EdgeProfileValidation.cs
- XmlQueryStaticData.cs
- DocumentReferenceCollection.cs
- StrongNamePublicKeyBlob.cs
- CaseInsensitiveComparer.cs
- TextBoxDesigner.cs
- QilTargetType.cs
- CqlIdentifiers.cs
- PageContentAsyncResult.cs
- DataService.cs
- OdbcConnectionPoolProviderInfo.cs
- ContainerVisual.cs
- ToolStripSplitButton.cs
- SafeFileHandle.cs
- Padding.cs
- BindingRestrictions.cs
- RowTypePropertyElement.cs
- MethodToken.cs
- KeyboardEventArgs.cs
- DiagnosticsConfigurationHandler.cs
- AuthorizationContext.cs
- ComPlusSynchronizationContext.cs
- ProgressiveCrcCalculatingStream.cs
- RemoteWebConfigurationHost.cs
- AutomationAttributeInfo.cs
- IdentityModelDictionary.cs
- CodeAssignStatement.cs
- DependencyObjectValidator.cs
- StateManagedCollection.cs
- XamlSerializationHelper.cs
- UnitySerializationHolder.cs
- CLRBindingWorker.cs
- RequestTimeoutManager.cs
- HttpFileCollection.cs
- TraceSection.cs
- CommandID.cs
- RadioButtonBaseAdapter.cs
- Int32Storage.cs
- EnumerableRowCollectionExtensions.cs
- XmlSchemaObject.cs
- DiscoveryReferences.cs
- SpanIndex.cs
- ByteAnimationUsingKeyFrames.cs
- TableLayoutRowStyleCollection.cs
- Bold.cs
- ToolStrip.cs
- StringAnimationBase.cs
- CommentEmitter.cs
- NullExtension.cs
- RightsManagementPermission.cs
- graph.cs
- MoveSizeWinEventHandler.cs
- DesignerWebPartChrome.cs
- MultilineStringConverter.cs
- Validator.cs
- EmptyEnumerator.cs
- SmtpClient.cs