/// <summary> /// Add a class which is declared public in this external module of /// THIS assembly. This class will be exported from this assembly. /// The ilasm syntax for this is .extern class /// </summary> /// <param name="attrSet">attributes of the class to be exported</param> /// <param name="nsName">name space name</param> /// <param name="name">external class name</param> /// <param name="declFile">the file where the class is declared</param> /// <param name="isValueClass">is this class a value type?</param> /// <returns>a descriptor for this external class</returns> public ExternClassRef AddExternClass(TypeAttr attrSet, string nsName, string name, FileRef declFile, bool isValueClass) { ExternClassRef cRef = new ExternClassRef(attrSet,nsName,name,declFile,metaData); metaData.AddToTable(MDTable.TypeRef,cRef); cRef.SetParent(this); if (isValueClass) cRef.MakeValueClass(ValueClass.ValueType); return cRef; }
public ClassRef AddNestedClass(TypeAttr attrs, string name) { ExternClassRef nestedClass = new ExternClassRef(name,metaData); externClass = new ExternClass(attrs,0,nameIx,this.externClass); metaData.AddToTable(MDTable.ExportedType,externClass); return nestedClass; }