TransformerInfoCollection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / Configuration / TransformerInfoCollection.cs / 1 / 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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK