Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // // 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
- WindowsToolbarItemAsMenuItem.cs
- InputLangChangeEvent.cs
- ConfigurationSection.cs
- XmlTypeAttribute.cs
- HtmlMeta.cs
- CultureInfo.cs
- StorageComplexPropertyMapping.cs
- BaseTreeIterator.cs
- NullEntityWrapper.cs
- CookieProtection.cs
- RequestSecurityTokenForGetBrowserToken.cs
- DataGridViewImageColumn.cs
- WebPartZoneAutoFormat.cs
- TimeoutHelper.cs
- MissingManifestResourceException.cs
- KeyValueSerializer.cs
- KnownBoxes.cs
- ToolStripScrollButton.cs
- ComponentCache.cs
- ReadWriteObjectLock.cs
- UpdateTranslator.cs
- XamlBuildTaskServices.cs
- ReadonlyMessageFilter.cs
- RightsManagementEncryptedStream.cs
- TabItem.cs
- SqlBuffer.cs
- InstanceNameConverter.cs
- VariableValue.cs
- SafeWaitHandle.cs
- TemplateControl.cs
- TrackBarRenderer.cs
- AssociatedControlConverter.cs
- Ref.cs
- TextProperties.cs
- SettingsProviderCollection.cs
- SimpleTypeResolver.cs
- TextTreeFixupNode.cs
- EmitterCache.cs
- ClientUrlResolverWrapper.cs
- DependencySource.cs
- InteropAutomationProvider.cs
- QilList.cs
- CapabilitiesUse.cs
- InternalRelationshipCollection.cs
- HtmlTableCellCollection.cs
- XamlSerializerUtil.cs
- ComPersistableTypeElement.cs
- ComponentTray.cs
- EventSchemaTraceListener.cs
- PieceNameHelper.cs
- PartitionResolver.cs
- CharKeyFrameCollection.cs
- Matrix.cs
- CompositeActivityTypeDescriptor.cs
- NumberEdit.cs
- WebRequestModulesSection.cs
- ConfigurationElementProperty.cs
- StringFunctions.cs
- ConfigurationPropertyAttribute.cs
- TextEffectResolver.cs
- precedingquery.cs
- Font.cs
- DbConnectionInternal.cs
- __Filters.cs
- ListenUriMode.cs
- MatrixAnimationBase.cs
- StateItem.cs
- AdPostCacheSubstitution.cs
- AppDomainEvidenceFactory.cs
- AlternateViewCollection.cs
- FlowDocumentFormatter.cs
- Translator.cs
- PieceDirectory.cs
- IsolatedStorageFilePermission.cs
- RbTree.cs
- MouseOverProperty.cs
- MediaSystem.cs
- HttpListener.cs
- ManipulationDelta.cs
- IPHostEntry.cs
- RIPEMD160Managed.cs
- Error.cs
- PrintEvent.cs
- SiteOfOriginPart.cs
- ObjectDataSourceMethodEventArgs.cs
- XmlHierarchicalEnumerable.cs
- BinaryObjectReader.cs
- Table.cs
- ContractMapping.cs
- MonitorWrapper.cs
- TypeNameParser.cs
- Pkcs7Signer.cs
- CancellationToken.cs
- XmlBinaryReader.cs
- DelegateArgumentReference.cs
- StringBuilder.cs
- ParameterSubsegment.cs
- Pts.cs
- XmlElementAttribute.cs
- ContentPlaceHolder.cs