PersistChildrenAttribute.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / PersistChildrenAttribute.cs / 1 / PersistChildrenAttribute.cs

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

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


    ///  
    ///    
    ///       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)] 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    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.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

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