RootProfilePropertySettingsCollection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / RootProfilePropertySettingsCollection.cs / 1305376 / RootProfilePropertySettingsCollection.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.Configuration { 
    using System; 
    using System.Xml;
    using System.Configuration; 
    using System.Collections.Specialized;
    using System.Collections;
    using System.IO;
    using System.Text; 
    using System.Web.Util;
    using System.Security.Permissions; 
 
    // class ProfileSection
 
    // ProfileGroupSettingsCollection

    [ConfigurationCollection(typeof(ProfilePropertySettings))]
    public sealed class RootProfilePropertySettingsCollection : ProfilePropertySettingsCollection { 
        private ProfileGroupSettingsCollection _propGroups = new ProfileGroupSettingsCollection();
        private static ConfigurationPropertyCollection _properties; 
 
        static RootProfilePropertySettingsCollection() {
            // Property initialization 
            _properties = new ConfigurationPropertyCollection();
        }

        protected override ConfigurationPropertyCollection Properties { 
            get {
                return _properties; 
            } 
        }
 
        public RootProfilePropertySettingsCollection() {
        }

        protected override bool AllowClear { 
            get {
                return true; 
            } 
        }
 
        protected override bool ThrowOnDuplicate {
            get {
                return true;
            } 
        }
 
        protected override bool OnDeserializeUnrecognizedElement(String elementName, XmlReader reader) { 
            bool handled = false;
 
            // Deal with the "group" element
            if (elementName == "group") {
                ProfileGroupSettingsCollection groupCollection;
                ProfileGroupSettings newGroupSettings; 
                ProfileGroupSettings curGroupSettings = null;
                string name = reader.GetAttribute("name"); 
 
                groupCollection = GroupSettings;
 
                if (name != null) {
                    curGroupSettings = groupCollection[name];
                }
 
                newGroupSettings = new ProfileGroupSettings();
                newGroupSettings.InternalReset(curGroupSettings); 
                newGroupSettings.InternalDeserialize(reader, false); 

                groupCollection.AddOrReplace(newGroupSettings); 

                handled = true;
            }
            else { 
                if (elementName == "clear") {
                    GroupSettings.Clear(); 
                } 

                // Let the base class deal with "add, remove, clear" 
                handled = base.OnDeserializeUnrecognizedElement(elementName, reader);
            }

            return handled; 
        }
 
        protected override bool IsModified() { 
            return base.IsModified() || GroupSettings.InternalIsModified();
        } 

        protected override void ResetModified() {
            base.ResetModified();
            GroupSettings.InternalResetModified(); 
        }
 
        public override bool Equals(object rootProfilePropertySettingsCollection) { 
            RootProfilePropertySettingsCollection o = rootProfilePropertySettingsCollection as RootProfilePropertySettingsCollection;
            return (o != null && Object.Equals(this, o) && Object.Equals(GroupSettings, o.GroupSettings)); 
        }

        public override int GetHashCode() {
            return HashCodeCombiner.CombineHashCodes(base.GetHashCode(), GroupSettings.GetHashCode()); 
        }
 
        protected override void Reset(ConfigurationElement parentElement) { 
            RootProfilePropertySettingsCollection parent = parentElement as RootProfilePropertySettingsCollection;
            base.Reset(parentElement); 
            GroupSettings.InternalReset(parent.GroupSettings);
        }

        protected override void Unmerge(ConfigurationElement sourceElement, 
                                        ConfigurationElement parentElement,
                                        ConfigurationSaveMode saveMode) { 
            RootProfilePropertySettingsCollection parent = parentElement as RootProfilePropertySettingsCollection; 
            RootProfilePropertySettingsCollection source = sourceElement as RootProfilePropertySettingsCollection;
 
            base.Unmerge(sourceElement, parentElement, saveMode);
            GroupSettings.InternalUnMerge(source.GroupSettings, (parent != null) ? parent.GroupSettings : null, saveMode);
        }
 
        protected override bool SerializeElement(XmlWriter writer, bool serializeCollectionKey) {
            bool DataToWrite = false; 
            if (base.SerializeElement(null, false) == true || 
                GroupSettings.InternalSerialize(null, false) == true) {
                DataToWrite |= base.SerializeElement(writer, false); 
                DataToWrite |= GroupSettings.InternalSerialize(writer, false);
            }
            return DataToWrite;
        } 

        [ConfigurationProperty("group")] 
        public ProfileGroupSettingsCollection GroupSettings { 
            get {
                return _propGroups; 
            }
        }
    }
} 

// 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