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
- UnsafeNativeMethodsTablet.cs
- SQLInt64Storage.cs
- FusionWrap.cs
- ProfileGroupSettings.cs
- DataSourceControl.cs
- StateMachine.cs
- CryptoConfig.cs
- SetStoryboardSpeedRatio.cs
- FormsAuthenticationUserCollection.cs
- GridViewCancelEditEventArgs.cs
- RegexCharClass.cs
- ProcessHostFactoryHelper.cs
- _SSPISessionCache.cs
- WebPartManager.cs
- Geometry3D.cs
- SafeSystemMetrics.cs
- PropertyGridCommands.cs
- PersonalizationProviderHelper.cs
- AuthenticodeSignatureInformation.cs
- CustomCategoryAttribute.cs
- ProfilePropertyMetadata.cs
- Timer.cs
- ProviderConnectionPointCollection.cs
- FixedSOMPageConstructor.cs
- ZipIOExtraFieldZip64Element.cs
- TraceUtils.cs
- DataListGeneralPage.cs
- TrailingSpaceComparer.cs
- AutoFocusStyle.xaml.cs
- AnnotationResourceChangedEventArgs.cs
- TemplateXamlTreeBuilder.cs
- documentation.cs
- GridViewRowPresenterBase.cs
- _DomainName.cs
- ViewGenResults.cs
- SqlServer2KCompatibilityCheck.cs
- OdbcConnectionPoolProviderInfo.cs
- PrimitiveXmlSerializers.cs
- ImageCollectionEditor.cs
- RolePrincipal.cs
- ImageList.cs
- XmlBindingWorker.cs
- Schema.cs
- UiaCoreProviderApi.cs
- DuplexChannelFactory.cs
- HttpProcessUtility.cs
- SendActivityDesignerTheme.cs
- CqlParser.cs
- InputLanguageManager.cs
- Item.cs
- DataKey.cs
- OracleCommand.cs
- ReceiveSecurityHeaderEntry.cs
- WindowsMenu.cs
- CqlParserHelpers.cs
- PenContexts.cs
- Win32.cs
- HashSet.cs
- GeneralTransform2DTo3DTo2D.cs
- ScrollChrome.cs
- DataGridViewColumn.cs
- x509utils.cs
- RowUpdatingEventArgs.cs
- ClientScriptManagerWrapper.cs
- NTAccount.cs
- NameValuePermission.cs
- SqlCachedBuffer.cs
- IisTraceWebEventProvider.cs
- GroupBox.cs
- QueryProcessor.cs
- MultiSelectRootGridEntry.cs
- ScriptRef.cs
- PropertyChange.cs
- PrinterResolution.cs
- RecoverInstanceLocksCommand.cs
- CommandDevice.cs
- MenuAutomationPeer.cs
- SqlMetaData.cs
- MultiByteCodec.cs
- JoinTreeNode.cs
- DataListItemCollection.cs
- InnerItemCollectionView.cs
- DataKey.cs
- GlyphElement.cs
- CompositionAdorner.cs
- DiscoveryClientOutputChannel.cs
- TextDecorationCollection.cs
- UnsafeNativeMethodsCLR.cs
- X509Certificate.cs
- CompatibleIComparer.cs
- Metafile.cs
- TypeUsageBuilder.cs
- SendMailErrorEventArgs.cs
- DataViewManager.cs
- StyleSheet.cs
- PointHitTestParameters.cs
- XMLSchema.cs
- ListViewGroupCollectionEditor.cs
- Collection.cs
- RC2CryptoServiceProvider.cs