PERWAPI.ClassDef.AddNestedClass C# (CSharp) Method

AddNestedClass() public method

Add a nested class to this class
public AddNestedClass ( TypeAttr attrSet, string name ) : NestedClassDef
attrSet TypeAttr attributes for this nested class
name string nested class name
return NestedClassDef
        public NestedClassDef AddNestedClass(TypeAttr attrSet, string name)
        {
            NestedClassDef nClass = GetNestedClass(name);
            if (nClass != null)
                throw new DescriptorException("Nested Class " + nClass.NameString());
            nClass = new NestedClassDef(this,attrSet,name);
            nestedClasses.Add(nClass);
            return (nClass);
        }

Same methods

ClassDef::AddNestedClass ( TypeAttr attrSet, string name, Class sType ) : NestedClassDef

Usage Example

コード例 #1
0
        //////////////////////////////////////////////////////////////////////////
        // Methods
        //////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Define a new class to emit for this assembly. This class
        /// becomes the 'current' class, where subsequent EmitMethod
        /// and EmitField calls will popuate this class.
        /// </summary>
        public void emitClass(string baseQName, string qname, string[] interfaces, TypeAttr attr)
        {
            string[] s = FanUtil.splitQName(qname);
            className = qname;

            // first check if this type was already stubbed out
            classDef = (ClassDef)types[qname];
            if (classDef == null)
            {
                // if not, we need to create it
                if (qname.IndexOf("/") != -1)
                {
                    // Nested class
                    PERWAPI.ClassDef cdef = (PERWAPI.ClassDef)findType(s[0]);
                    classDef = cdef.AddNestedClass(attr, s[1]);
                }
                else
                {
                    // Normal class
                    classDef = peFile.AddClass(attr, s[0], s[1]);
                }
            }
            else
            {
                // if stubbed out, make sure we define the type correctly
                classDef.SetAttribute(attr);
            }

            // base class
            if (baseQName == null)
            {
                classDef.SuperType = null;
            }
            else
            {
                classDef.SuperType = findType(baseQName) as PERWAPI.Class;
            }

            // interfaces
            for (int i = 0; i < interfaces.Length; i++)
            {
                classDef.AddImplementedInterface(findType(interfaces[i]) as PERWAPI.Class);
            }

            types[qname] = classDef;
        }
All Usage Examples Of PERWAPI.ClassDef::AddNestedClass