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
- ContentDefinition.cs
- ValidationSummary.cs
- XmlDictionaryString.cs
- MenuRendererStandards.cs
- Logging.cs
- ServiceModelConfigurationElementCollection.cs
- ProtocolElementCollection.cs
- TextBox.cs
- DocumentApplication.cs
- LiteralTextContainerControlBuilder.cs
- ADMembershipUser.cs
- EntityStoreSchemaGenerator.cs
- ThreadStaticAttribute.cs
- WindowsFormsHost.cs
- _SSPIWrapper.cs
- DesignTimeTemplateParser.cs
- UrlMappingsModule.cs
- XmlSchemaCompilationSettings.cs
- TouchEventArgs.cs
- EventRoute.cs
- XmlSchemaObjectTable.cs
- ReaderWriterLockSlim.cs
- PluggableProtocol.cs
- _ListenerRequestStream.cs
- ChangeInterceptorAttribute.cs
- XmlSchemaSimpleTypeUnion.cs
- WriteFileContext.cs
- ErrorHandlerFaultInfo.cs
- DocumentPaginator.cs
- IndexedWhereQueryOperator.cs
- ParenthesizePropertyNameAttribute.cs
- Dump.cs
- SrgsElementList.cs
- StyleConverter.cs
- CacheHelper.cs
- HealthMonitoringSection.cs
- XmlSchema.cs
- ThreadSafeList.cs
- ObjectView.cs
- NeedSkipTokenVisitor.cs
- TraceRecord.cs
- TemplateModeChangedEventArgs.cs
- PartitionedDataSource.cs
- TreeNodeCollection.cs
- MailHeaderInfo.cs
- InheritanceContextHelper.cs
- TextSimpleMarkerProperties.cs
- SqlRetyper.cs
- ScrollPattern.cs
- SqlConnectionHelper.cs
- GridItemCollection.cs
- TimeSpanHelper.cs
- ADRoleFactory.cs
- LoadedOrUnloadedOperation.cs
- RandomNumberGenerator.cs
- LiteralSubsegment.cs
- PagerSettings.cs
- FileDialog_Vista.cs
- BufferedGraphics.cs
- SqlProfileProvider.cs
- RemotingService.cs
- UniqueID.cs
- Ipv6Element.cs
- WindowsToolbarAsMenu.cs
- ReadOnlyState.cs
- SizeIndependentAnimationStorage.cs
- XsltSettings.cs
- DbParameterCollectionHelper.cs
- Sentence.cs
- DeviceContext2.cs
- SqlRetyper.cs
- RegionData.cs
- Rights.cs
- METAHEADER.cs
- DataGridViewBindingCompleteEventArgs.cs
- RegexWriter.cs
- X509CertificateClaimSet.cs
- DependencyPropertyDescriptor.cs
- CryptoProvider.cs
- Soap.cs
- RawStylusActions.cs
- EnterpriseServicesHelper.cs
- MissingSatelliteAssemblyException.cs
- Model3DGroup.cs
- DataRowView.cs
- JsonFormatReaderGenerator.cs
- MergeFailedEvent.cs
- XmlLinkedNode.cs
- HtmlControlDesigner.cs
- MDIWindowDialog.cs
- SQLInt32Storage.cs
- Enum.cs
- DynamicPropertyHolder.cs
- GeneralTransform2DTo3D.cs
- ExpressionSelection.cs
- SymmetricSecurityProtocolFactory.cs
- ListItemCollection.cs
- DetailsViewInsertedEventArgs.cs
- CircleHotSpot.cs
- XmlQualifiedNameTest.cs