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
- BaseProcessProtocolHandler.cs
- Pens.cs
- FormattedText.cs
- GeometryDrawing.cs
- QilBinary.cs
- KeyValuePair.cs
- GridViewAutomationPeer.cs
- ThreadStateException.cs
- WindowsSysHeader.cs
- DocumentXPathNavigator.cs
- SimpleWorkerRequest.cs
- TypedOperationInfo.cs
- Enlistment.cs
- IndexerNameAttribute.cs
- XsdDateTime.cs
- DataObjectFieldAttribute.cs
- TerminateDesigner.cs
- DataGridRowAutomationPeer.cs
- TabletCollection.cs
- PropertyCollection.cs
- parserscommon.cs
- ControlBindingsConverter.cs
- WhitespaceRule.cs
- WebPartAuthorizationEventArgs.cs
- WebServiceHandlerFactory.cs
- FontSourceCollection.cs
- DesignRelationCollection.cs
- LinkDesigner.cs
- AsyncPostBackErrorEventArgs.cs
- InternalSafeNativeMethods.cs
- SessionEndedEventArgs.cs
- TdsParser.cs
- DynamicQueryableWrapper.cs
- MessageEncoder.cs
- LinqDataSourceSelectEventArgs.cs
- TagMapCollection.cs
- HtmlAnchor.cs
- CodeAssignStatement.cs
- DBPropSet.cs
- ByteStream.cs
- ActionMismatchAddressingException.cs
- InvalidDataException.cs
- CompilerResults.cs
- RedirectionProxy.cs
- SmiXetterAccessMap.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- AxImporter.cs
- ScaleTransform.cs
- TableLayout.cs
- MetadataWorkspace.cs
- ListSortDescriptionCollection.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- RuleDefinitions.cs
- ExtendedProtectionPolicy.cs
- NativeMethods.cs
- OutputCacheModule.cs
- XmlNullResolver.cs
- HtmlElement.cs
- EmissiveMaterial.cs
- GridViewRow.cs
- LOSFormatter.cs
- RemoveStoryboard.cs
- SiteMapSection.cs
- MultiPropertyDescriptorGridEntry.cs
- WSSecurityJan2004.cs
- GridViewUpdateEventArgs.cs
- PrincipalPermission.cs
- Constants.cs
- userdatakeys.cs
- Matrix3D.cs
- OverrideMode.cs
- BitmapEffectState.cs
- ColorConvertedBitmap.cs
- LocalizationParserHooks.cs
- CodeExpressionStatement.cs
- MethodBuilder.cs
- StrokeNode.cs
- InvalidPropValue.cs
- DispatcherFrame.cs
- PolygonHotSpot.cs
- MaterialGroup.cs
- HandleTable.cs
- InputLanguageCollection.cs
- EntitySqlQueryCacheEntry.cs
- QueryResponse.cs
- SoapAttributes.cs
- RoutedEventArgs.cs
- Module.cs
- ServicePoint.cs
- MetadataProperty.cs
- ListViewTableCell.cs
- ViewKeyConstraint.cs
- DeclarativeCatalogPart.cs
- WebPartDescription.cs
- MsdtcClusterUtils.cs
- ExtentJoinTreeNode.cs
- OverrideMode.cs
- safex509handles.cs
- ListenerPerfCounters.cs
- ConfigXmlReader.cs