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
- TextEffect.cs
- ValueConversionAttribute.cs
- DataGridViewSelectedRowCollection.cs
- CompModSwitches.cs
- SamlAuthenticationStatement.cs
- TogglePatternIdentifiers.cs
- SrgsToken.cs
- SynchronizedDispatch.cs
- ToolStripDropDown.cs
- PrintPreviewDialog.cs
- ConfigurationStrings.cs
- MachineKeySection.cs
- CodeCastExpression.cs
- ParameterModifier.cs
- CompilerGeneratedAttribute.cs
- Part.cs
- Span.cs
- ZipIOExtraField.cs
- TextTreeExtractElementUndoUnit.cs
- DataSetFieldSchema.cs
- HtmlFormParameterReader.cs
- ApplicationFileParser.cs
- NoneExcludedImageIndexConverter.cs
- ResourceIDHelper.cs
- ResXBuildProvider.cs
- ContextInformation.cs
- WebPartDisplayMode.cs
- DataBinder.cs
- CorrelationManager.cs
- ToolStripItemTextRenderEventArgs.cs
- DateTimeFormat.cs
- PropertyChangingEventArgs.cs
- MatrixKeyFrameCollection.cs
- TypeLoadException.cs
- Compiler.cs
- StartUpEventArgs.cs
- AuthenticationServiceManager.cs
- AsymmetricSecurityProtocolFactory.cs
- WebPartConnectVerb.cs
- JsonMessageEncoderFactory.cs
- Empty.cs
- VirtualPathProvider.cs
- ServiceReference.cs
- Aggregates.cs
- TableCell.cs
- Command.cs
- PathGradientBrush.cs
- FileDialogCustomPlace.cs
- BrowserCapabilitiesCompiler.cs
- ModelUtilities.cs
- XmlAnyAttributeAttribute.cs
- EncoderParameters.cs
- PerformanceCounterPermissionEntryCollection.cs
- SQLStringStorage.cs
- PropertyGeneratedEventArgs.cs
- XmlC14NWriter.cs
- ToolBarTray.cs
- CodeTypeReferenceSerializer.cs
- SerializableAttribute.cs
- RoleService.cs
- PropertyChangeTracker.cs
- SafeCoTaskMem.cs
- GeometryConverter.cs
- WebPartVerbCollection.cs
- PropertyFilter.cs
- StateDesigner.Layouts.cs
- _Events.cs
- XmlAttributeCollection.cs
- DesignerDataColumn.cs
- figurelength.cs
- AQNBuilder.cs
- ExpandCollapseProviderWrapper.cs
- QilSortKey.cs
- TextEditorMouse.cs
- DESCryptoServiceProvider.cs
- WebBrowser.cs
- FactoryMaker.cs
- CodeMemberField.cs
- DefaultAssemblyResolver.cs
- NativeMethodsCLR.cs
- MouseOverProperty.cs
- FileDataSourceCache.cs
- EmptyEnumerable.cs
- ToggleButtonAutomationPeer.cs
- CodeDomComponentSerializationService.cs
- mda.cs
- DbConnectionPoolGroupProviderInfo.cs
- SqlDependencyListener.cs
- SkipQueryOptionExpression.cs
- SignatureDescription.cs
- SourceFileInfo.cs
- RootBuilder.cs
- DesignColumn.cs
- PeerCollaborationPermission.cs
- RoutedEventArgs.cs
- CorrelationManager.cs
- CellConstant.cs
- SqlConnection.cs
- DoubleCollectionValueSerializer.cs
- ReferenceSchema.cs