PersistChildrenAttribute.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 / UI / PersistChildrenAttribute.cs / 1305376 / PersistChildrenAttribute.cs

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

namespace System.Web.UI { 
 
    using System;
    using System.ComponentModel; 

    /// 
    ///    
    ///       Indicates whether 
    ///       the contents within a tag representing a custom
    ///       or Web control should be treated as literal text. Web controls supporting complex properties, like 
    ///       templates, and 
    ///       so on, typically mark themselves as "literals", thereby letting the designer
    ///       infra-structure deal with the persistence of those attributes. 
    /// 
    [AttributeUsage(AttributeTargets.Class)]
    public sealed class PersistChildrenAttribute : Attribute {
 

        ///  
        ///    Indicates that the children of a control should be persisted at design-time. 
        ///       
        ///  
        public static readonly PersistChildrenAttribute Yes = new PersistChildrenAttribute(true);


        ///  
        ///    Indicates that the children of a control should not be persisted at design-time.
        ///  
        public static readonly PersistChildrenAttribute No = new PersistChildrenAttribute(false); 

 
        /// 
        ///     This marks the default child persistence behavior for a control at design time. (equal to Yes.)
        /// 
        public static readonly PersistChildrenAttribute Default = Yes; 

        private bool _persist; 
        private bool _usesCustomPersistence; 

 
        /// 
        /// 
        public PersistChildrenAttribute(bool persist) {
            _persist = persist; 
        }
 
        public PersistChildrenAttribute(bool persist, bool usesCustomPersistence) : this(persist) { 
            _usesCustomPersistence = usesCustomPersistence;
        } 


        /// 
        ///    Indicates whether the children of a control should be persisted at design-time. 
        ///       This property is read-only.
        ///  
        public bool Persist { 
            get {
                return _persist; 
            }
        }

 
        /// 
        ///    Indicates whether the control does custom persistence. 
        ///       This property is read-only. 
        /// 
        public bool UsesCustomPersistence { 
            get {
                // if persist is true, we don't use custom persistence.
                return !_persist && _usesCustomPersistence;
            } 
        }
 
 
        /// 
        ///  
        /// 
        public override int GetHashCode() {
            return Persist.GetHashCode();
        } 

 
        ///  
        /// 
        ///  
        public override bool Equals(object obj) {
            if (obj == this) {
                return true;
            } 

            if ((obj != null) && (obj is PersistChildrenAttribute)) { 
                return ((PersistChildrenAttribute)obj).Persist == _persist; 
            }
 
            return false;
        }

 
        /// 
        ///  
        ///  
        public override bool IsDefaultAttribute() {
            return this.Equals(Default); 
        }
    }
}

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