Code:
/ DotNET / DotNET / 8.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
- DependencySource.cs
- ResourceCategoryAttribute.cs
- BookmarkWorkItem.cs
- DataControlButton.cs
- DecimalConverter.cs
- HashLookup.cs
- Typeface.cs
- LogicalTreeHelper.cs
- UInt64Storage.cs
- Span.cs
- HtmlTableRowCollection.cs
- XPathNodeList.cs
- Control.cs
- InvokeMethodDesigner.xaml.cs
- SharedPerformanceCounter.cs
- IndentTextWriter.cs
- _SslSessionsCache.cs
- InkCanvasFeedbackAdorner.cs
- OperationBehaviorAttribute.cs
- HierarchicalDataBoundControl.cs
- FixUp.cs
- WebBaseEventKeyComparer.cs
- OperationResponse.cs
- OleDbPermission.cs
- DLinqColumnProvider.cs
- AttachmentCollection.cs
- BaseTransportHeaders.cs
- XmlDataSource.cs
- Brush.cs
- graph.cs
- LocalIdCollection.cs
- MdiWindowListStrip.cs
- ValidationErrorInfo.cs
- BypassElement.cs
- MexHttpsBindingElement.cs
- FileEnumerator.cs
- HttpCapabilitiesSectionHandler.cs
- SettingsBindableAttribute.cs
- ExclusiveCanonicalizationTransform.cs
- SerializationEventsCache.cs
- PageAsyncTaskManager.cs
- PrivilegedConfigurationManager.cs
- Constraint.cs
- CngAlgorithmGroup.cs
- FrameworkReadOnlyPropertyMetadata.cs
- AlphaSortedEnumConverter.cs
- JavaScriptString.cs
- SettingsSavedEventArgs.cs
- _ProxyChain.cs
- AuthenticationSection.cs
- PackageFilter.cs
- IntSecurity.cs
- ExpressionBinding.cs
- ContextMenuService.cs
- HtmlTableRowCollection.cs
- DesignerCatalogPartChrome.cs
- HashCoreRequest.cs
- DataGridViewTopLeftHeaderCell.cs
- Transform3D.cs
- RequestCacheValidator.cs
- TransportManager.cs
- MatrixUtil.cs
- XamlDesignerSerializationManager.cs
- ExpandSegment.cs
- WebPartRestoreVerb.cs
- WCFServiceClientProxyGenerator.cs
- ObjectHelper.cs
- LineServicesCallbacks.cs
- MultiTrigger.cs
- ProtocolImporter.cs
- SmtpClient.cs
- SqlGatherProducedAliases.cs
- TTSEngineTypes.cs
- SelectionPatternIdentifiers.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- DependencyStoreSurrogate.cs
- DataGridViewRowCancelEventArgs.cs
- DataGridViewCellMouseEventArgs.cs
- Single.cs
- LabelAutomationPeer.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- ImpersonationContext.cs
- BitmapEffectInputData.cs
- FormatterConverter.cs
- ListViewEditEventArgs.cs
- dbenumerator.cs
- ImageDesigner.cs
- documentsequencetextpointer.cs
- DataGridViewAccessibleObject.cs
- XmlDocumentSurrogate.cs
- CompositeDataBoundControl.cs
- UIElement.cs
- LogLogRecord.cs
- PagedDataSource.cs
- SelectionHighlightInfo.cs
- ObjectStateEntry.cs
- GZipObjectSerializer.cs
- OneOf.cs
- HttpProfileBase.cs
- BaseDataListDesigner.cs