CodeNamespace.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / CodeDOM / CodeNamespace.cs / 1 / CodeNamespace.cs

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

namespace System.CodeDom { 
 
    using System.Diagnostics;
    using System; 
    using Microsoft.Win32;
    using System.Collections;
    using System.Runtime.Serialization;
    using System.Runtime.InteropServices; 

    ///  
    ///     
    ///       Represents a
    ///       namespace declaration. 
    ///    
    /// 
    [
        ClassInterface(ClassInterfaceType.AutoDispatch), 
        ComVisible(true),
        Serializable, 
    ] 
    public class CodeNamespace: CodeObject {
        private string name; 
        private CodeNamespaceImportCollection imports = new CodeNamespaceImportCollection();
        private CodeCommentStatementCollection comments = new CodeCommentStatementCollection();
        private CodeTypeDeclarationCollection classes = new CodeTypeDeclarationCollection();
        private CodeNamespaceCollection namespaces = new CodeNamespaceCollection(); 

        private int  populated = 0x0; 
        private const int ImportsCollection = 0x1; 
        private const int CommentsCollection = 0x2;
        private const int TypesCollection = 0x4; 

#if CODEDOM_NESTED_NAMESPACES
        private const int NamespacesCollection = 0x8;
#endif 

 
 
        /// 
        ///     
        ///       An event that will be fired the first time the Comments Collection is accessed.
        ///    
        /// 
        public event EventHandler PopulateComments; 

         ///  
        ///     
        ///       An event that will be fired the first time the Imports Collection is accessed.
        ///     
        /// 
        public event EventHandler PopulateImports;

#if CODEDOM_NESTED_NAMESPACES 
         /// 
        ///     
        ///       An event that will be fired the first time the Namespaces Collection is accessed. 
        ///    
        ///  
        public event EventHandler PopulateNamespaces;
#endif

 
        /// 
        ///     
        ///       An event that will be fired the first time the Types Collection is accessed. 
        ///    
        ///  
        public event EventHandler PopulateTypes;

        /// 
        ///     
        ///       Initializes a new instance of .
        ///     
        ///  
        public CodeNamespace() {
        } 

        /// 
        ///    
        ///       Initializes a new instance of  using the specified name. 
        ///    
        ///  
        public CodeNamespace(string name) { 
            Name = name;
        } 

        private CodeNamespace(SerializationInfo info, StreamingContext context) {
        }
 
        /// 
        ///     
        ///       Gets or sets the collection of classes. 
        ///    
        ///  
        public CodeTypeDeclarationCollection Types {
            get {
                if (0 == (populated & TypesCollection)) {
                    populated |= TypesCollection; 
                    if (PopulateTypes != null) PopulateTypes(this, EventArgs.Empty);
                } 
                return classes; 
            }
        } 

        /// 
        ///    
        ///       Gets or sets the collection of namespace imports used by the represented 
        ///       namespace.
        ///     
        ///  
        public CodeNamespaceImportCollection Imports {
            get { 
                if (0 == (populated & ImportsCollection)) {
                    populated |= ImportsCollection;
                    if (PopulateImports != null) PopulateImports(this, EventArgs.Empty);
                } 
                return imports;
            } 
        } 

        ///  
        ///    
        ///       Gets or sets the name of the namespace.
        ///    
        ///  
        public string Name {
            get { 
                return (name == null) ? string.Empty : name; 
            }
            set { 
                name = value;
            }
        }
 

#if CODEDOM_NESTED_NAMESPACES 
 
        /// 
        ///     
        ///       Gets or sets the collection of Namespaces.
        ///    
        /// 
        public CodeNamespaceCollection Namespaces { 
            get {
                if (0 == (populated & NamespacesCollection)) { 
                    populated |= NamespacesCollection; 
                    if (PopulateNamespaces != null) PopulateNamespaces(this, EventArgs.Empty);
                } 
                return namespaces;
            }
        }
 
#endif
 
        ///  
        ///    
        ///       Gets or sets the member comment collection members. 
        ///    
        /// 
        public CodeCommentStatementCollection Comments {
            get { 
                if (0 == (populated & CommentsCollection)) {
                    populated |= CommentsCollection; 
                    if (PopulateComments != null) PopulateComments(this, EventArgs.Empty); 
                }
                return comments; 
            }
        }
    }
} 


                        

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