Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / TransformerInfoCollection.cs / 1305376 / 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))] 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebServiceParameterData.cs
- DataComponentNameHandler.cs
- CompilerScope.cs
- ClientCredentialsSecurityTokenManager.cs
- AuthenticatedStream.cs
- PriorityQueue.cs
- Header.cs
- ComponentChangingEvent.cs
- GraphicsContext.cs
- XmlStreamStore.cs
- XPathAncestorIterator.cs
- DependencyObjectProvider.cs
- SerializationException.cs
- SHA512Managed.cs
- ScrollChrome.cs
- DesignerDataTableBase.cs
- SetterBase.cs
- ListBindingHelper.cs
- _LoggingObject.cs
- MetadataPropertyvalue.cs
- ListViewInsertEventArgs.cs
- UTF32Encoding.cs
- DeclaredTypeValidatorAttribute.cs
- TaskFormBase.cs
- Guid.cs
- DbConnectionPoolGroup.cs
- ConcurrencyBehavior.cs
- RolePrincipal.cs
- DbProviderFactoriesConfigurationHandler.cs
- SmiRecordBuffer.cs
- COM2TypeInfoProcessor.cs
- DataGridViewTextBoxColumn.cs
- WbemProvider.cs
- ColumnMapProcessor.cs
- DbCommandTree.cs
- TableLayoutSettings.cs
- SelectionPattern.cs
- StateBag.cs
- prefixendpointaddressmessagefilter.cs
- HtmlShimManager.cs
- DetailsViewUpdateEventArgs.cs
- BindingValueChangedEventArgs.cs
- AttributeUsageAttribute.cs
- PackageRelationshipCollection.cs
- ImageMetadata.cs
- BrowserDefinitionCollection.cs
- HtmlTableRow.cs
- DomainUpDown.cs
- ImportContext.cs
- ActionMismatchAddressingException.cs
- Point3DCollection.cs
- UnionCqlBlock.cs
- FormatException.cs
- TemplatedWizardStep.cs
- UInt16Converter.cs
- RuleRefElement.cs
- FlowDocumentReader.cs
- GifBitmapDecoder.cs
- ActiveXSite.cs
- GetUserPreferenceRequest.cs
- SqlDataSource.cs
- ImageListUtils.cs
- FigureParagraph.cs
- RectAnimation.cs
- ModelUtilities.cs
- XmlAnyElementAttributes.cs
- HtmlInputReset.cs
- NotImplementedException.cs
- ThreadLocal.cs
- DataTable.cs
- ActivityXamlServices.cs
- RenderTargetBitmap.cs
- ResourceProperty.cs
- ClientTargetSection.cs
- SqlNamer.cs
- UTF8Encoding.cs
- OrderByQueryOptionExpression.cs
- IIS7WorkerRequest.cs
- VariableQuery.cs
- RectangleConverter.cs
- WebPartDisplayMode.cs
- HttpPostServerProtocol.cs
- EndpointInstanceProvider.cs
- IApplicationTrustManager.cs
- BitmapEditor.cs
- DisposableCollectionWrapper.cs
- UITypeEditor.cs
- DataGridHyperlinkColumn.cs
- Transform.cs
- AliasGenerator.cs
- TreeNodeCollectionEditor.cs
- DockAndAnchorLayout.cs
- SqlDataSourceEnumerator.cs
- ComPersistableTypeElementCollection.cs
- ToolBarButton.cs
- RTLAwareMessageBox.cs
- DataGridViewColumnStateChangedEventArgs.cs
- HttpContextServiceHost.cs
- TextSegment.cs
- ProcessingInstructionAction.cs