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
- XmlnsCache.cs
- ThemeInfoAttribute.cs
- PersonalizationStateQuery.cs
- NumericUpDownAccelerationCollection.cs
- SystemFonts.cs
- FileDataSourceCache.cs
- PageCatalogPartDesigner.cs
- PropertyPathConverter.cs
- PanelContainerDesigner.cs
- XPathNavigatorReader.cs
- TypePropertyEditor.cs
- TemplateContent.cs
- CheckoutException.cs
- WindowsSpinner.cs
- SqlCommandSet.cs
- FrameworkElementAutomationPeer.cs
- AnnotationResource.cs
- IpcChannelHelper.cs
- PropertyMetadata.cs
- MimeObjectFactory.cs
- securitycriticaldataformultiplegetandset.cs
- PropertyIdentifier.cs
- DataGridViewRowPostPaintEventArgs.cs
- MessageSecurityTokenVersion.cs
- DataBoundControl.cs
- CurrentTimeZone.cs
- UnauthorizedAccessException.cs
- NamespaceList.cs
- InitializationEventAttribute.cs
- UnsafeNetInfoNativeMethods.cs
- AutomationInteropProvider.cs
- NameTable.cs
- Literal.cs
- DetailsViewRowCollection.cs
- MenuItem.cs
- WindowsTreeView.cs
- RedirectionProxy.cs
- WinEventWrap.cs
- HashLookup.cs
- StrokeDescriptor.cs
- TdsParserStateObject.cs
- XmlEnumAttribute.cs
- SHA256Managed.cs
- BitmapSizeOptions.cs
- HitTestParameters.cs
- MultiPropertyDescriptorGridEntry.cs
- Dictionary.cs
- Int32Rect.cs
- ContainerVisual.cs
- TextBox.cs
- PerSessionInstanceContextProvider.cs
- DataContractSerializer.cs
- ReadOnlyPropertyMetadata.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- ChannelCacheSettings.cs
- OleDbParameter.cs
- DbConnectionHelper.cs
- DocumentXPathNavigator.cs
- FileDialogPermission.cs
- SymbolPair.cs
- Vector3DConverter.cs
- Vector3DAnimationBase.cs
- _ProxyRegBlob.cs
- FrameworkElement.cs
- CachingHintValidation.cs
- MeasureItemEvent.cs
- DesignerTextWriter.cs
- HtmlHead.cs
- ConfigurationPermission.cs
- HotSpot.cs
- ToolStripOverflowButton.cs
- Win32Exception.cs
- cache.cs
- BitSet.cs
- EntityViewContainer.cs
- PersonalizationProviderHelper.cs
- SizeConverter.cs
- StatusBarPanelClickEvent.cs
- ListParagraph.cs
- DataFormat.cs
- TextPatternIdentifiers.cs
- OperationPickerDialog.designer.cs
- WebDisplayNameAttribute.cs
- SafeRightsManagementEnvironmentHandle.cs
- MutexSecurity.cs
- SqlCrossApplyToCrossJoin.cs
- EmptyImpersonationContext.cs
- ActivityCodeDomReferenceService.cs
- CharacterMetrics.cs
- HtmlShim.cs
- SamlAuthenticationStatement.cs
- AsynchronousChannelMergeEnumerator.cs
- OpenTypeLayoutCache.cs
- SymbolEqualComparer.cs
- EqualityComparer.cs
- ResXResourceReader.cs
- GridItem.cs
- TokenizerHelper.cs
- XmlILAnnotation.cs
- SHA512.cs