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
- DoubleCollection.cs
- COM2IDispatchConverter.cs
- ImageAnimator.cs
- LinkedResourceCollection.cs
- HtmlForm.cs
- DefaultSettingsSection.cs
- HttpRequestWrapper.cs
- LexicalChunk.cs
- TaiwanLunisolarCalendar.cs
- EditCommandColumn.cs
- WriterOutput.cs
- CodeParameterDeclarationExpressionCollection.cs
- ContractNamespaceAttribute.cs
- RSAProtectedConfigurationProvider.cs
- _ServiceNameStore.cs
- TagNameToTypeMapper.cs
- Literal.cs
- TargetPerspective.cs
- ProgressBarRenderer.cs
- __ComObject.cs
- TextMessageEncodingBindingElement.cs
- ErasingStroke.cs
- FrameworkContentElementAutomationPeer.cs
- SpellerStatusTable.cs
- CrossContextChannel.cs
- ViewKeyConstraint.cs
- ElementMarkupObject.cs
- TableCell.cs
- AxisAngleRotation3D.cs
- SeekStoryboard.cs
- ListBoxChrome.cs
- TextAction.cs
- glyphs.cs
- LinkConverter.cs
- TrailingSpaceComparer.cs
- PeerApplicationLaunchInfo.cs
- BrowserDefinition.cs
- ButtonField.cs
- TaskForm.cs
- LockingPersistenceProvider.cs
- LineServicesCallbacks.cs
- LogFlushAsyncResult.cs
- XmlQueryContext.cs
- TextProperties.cs
- Utils.cs
- LinkedResourceCollection.cs
- SocketConnection.cs
- CopyAttributesAction.cs
- SystemIcmpV6Statistics.cs
- HatchBrush.cs
- CodeRegionDirective.cs
- WebExceptionStatus.cs
- TypeSystemProvider.cs
- RelationshipWrapper.cs
- ZoneLinkButton.cs
- Predicate.cs
- AssemblyCollection.cs
- AsyncSerializedWorker.cs
- MeasureData.cs
- RegexWorker.cs
- ConnectionPoint.cs
- DataGridViewHitTestInfo.cs
- PartialArray.cs
- PartitionerQueryOperator.cs
- XmlNodeList.cs
- JsonEncodingStreamWrapper.cs
- ConstantSlot.cs
- UpdateRecord.cs
- PcmConverter.cs
- ProfileSection.cs
- ToolStripArrowRenderEventArgs.cs
- RandomDelaySendsAsyncResult.cs
- ScalarOps.cs
- SafeRightsManagementQueryHandle.cs
- HttpWebRequestElement.cs
- SystemIPInterfaceProperties.cs
- DeviceSpecificDesigner.cs
- Column.cs
- ElementHostAutomationPeer.cs
- Image.cs
- MultipartContentParser.cs
- BamlStream.cs
- QueryExpr.cs
- CodeGenHelper.cs
- ArrayElementGridEntry.cs
- DoubleAverageAggregationOperator.cs
- ObservableCollectionDefaultValueFactory.cs
- TrustManagerMoreInformation.cs
- WebConfigurationFileMap.cs
- DataControlLinkButton.cs
- ComplexObject.cs
- DefaultCommandConverter.cs
- Pair.cs
- ConfigXmlWhitespace.cs
- SmiTypedGetterSetter.cs
- SerializationHelper.cs
- compensatingcollection.cs
- IncrementalCompileAnalyzer.cs
- TokenizerHelper.cs
- EncryptedXml.cs