Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Configuration / TransformerInfoCollection.cs / 5 / 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; } } } // 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))] [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; } } } // 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
- WasAdminWrapper.cs
- DateTimeOffset.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- codemethodreferenceexpression.cs
- LinearKeyFrames.cs
- SchemaElementDecl.cs
- TimeSpanParse.cs
- Light.cs
- ContentValidator.cs
- FilePresentation.cs
- KoreanLunisolarCalendar.cs
- DataRecordInfo.cs
- DropSourceBehavior.cs
- NotSupportedException.cs
- NamespaceEmitter.cs
- ServiceHost.cs
- UdpDiscoveryMessageFilter.cs
- QueryStack.cs
- ReflectionHelper.cs
- MetadataItemEmitter.cs
- TypeBuilderInstantiation.cs
- RegexBoyerMoore.cs
- DataTablePropertyDescriptor.cs
- templategroup.cs
- ObjectDataSourceWizardForm.cs
- WebScriptEnablingBehavior.cs
- ConditionalAttribute.cs
- EntityModelSchemaGenerator.cs
- EntityUtil.cs
- ServiceObjectContainer.cs
- CanonicalFontFamilyReference.cs
- BufferedWebEventProvider.cs
- Buffer.cs
- BitmapDownload.cs
- CryptoConfig.cs
- _Connection.cs
- WinEventTracker.cs
- InheritanceRules.cs
- CodeNamespaceCollection.cs
- ComponentCache.cs
- FilteredAttributeCollection.cs
- EUCJPEncoding.cs
- SafeRegistryHandle.cs
- IgnoreDeviceFilterElement.cs
- ListViewEditEventArgs.cs
- ScheduleChanges.cs
- SettingsPropertyValueCollection.cs
- BrushConverter.cs
- FederatedMessageSecurityOverHttp.cs
- XmlUrlEditor.cs
- XPathExpr.cs
- DesignerVerbCollection.cs
- BaseWebProxyFinder.cs
- AssertUtility.cs
- WmpBitmapEncoder.cs
- CatalogPart.cs
- Size3DConverter.cs
- ImageBrush.cs
- ToolStripMenuItemDesigner.cs
- MarkupWriter.cs
- Bold.cs
- OleDbParameter.cs
- coordinatorscratchpad.cs
- EntityViewContainer.cs
- IndentedWriter.cs
- XmlSchemaParticle.cs
- Formatter.cs
- TreeViewHitTestInfo.cs
- _CookieModule.cs
- ToolBarTray.cs
- RelOps.cs
- XsdBuildProvider.cs
- LongValidator.cs
- InsufficientMemoryException.cs
- XPathSingletonIterator.cs
- BookmarkOptionsHelper.cs
- XsltCompileContext.cs
- RequestTimeoutManager.cs
- SecurityContextSecurityTokenParameters.cs
- QilNode.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- SectionUpdates.cs
- PropertyChangedEventArgs.cs
- Int32CAMarshaler.cs
- DependencyPropertyAttribute.cs
- SimpleModelProvider.cs
- TraceUtility.cs
- XmlStringTable.cs
- DiscoveryDocumentSearchPattern.cs
- ScriptReference.cs
- ThicknessKeyFrameCollection.cs
- MsmqIntegrationSecurityMode.cs
- Normalizer.cs
- MaskedTextProvider.cs
- ErrorFormatter.cs
- TextTreeUndo.cs
- Rules.cs
- SQLUtility.cs
- DataGridViewRowPostPaintEventArgs.cs
- TypeConvertions.cs