The descriptor for a class defined in the IL (.class) in the current assembly/module
Inheritance: Class
Exemple #1
0
 public ClassTableItem (ClassDef klass, Location location)
 {
         flags = 0;
         Class = klass;
         LocationList = new ArrayList ();
         LocationList.Add (location);
         method_table = new MethodTable (klass);
         field_table = new FieldTable (klass);
 }
		internal Feature(string name, ClassDef par) 
		{
			parent = par;
			this.name = name;
		}
		/// <summary>
		/// Add a nested class to this class
		/// </summary>
		/// <param name="attrSet">attributes for this nested class</param>
		/// <param name="nsName">nested name space name</param>
		/// <param name="name">nested class name</param>
		/// <returns>a descriptor for this new nested class</returns>
		public ClassDef AddNestedClass(TypeAttr attrSet, string nsName, 
				string name) {
			ClassDef nClass = new ClassDef(attrSet,"",name,metaData);
			metaData.AddToTable(MDTable.TypeDef,nClass);
			metaData.AddToTable(MDTable.NestedClass,new MapElem(nClass,Row,MDTable.TypeDef));
			nClass.parentClass = this;
			return (nClass);
		}
		internal MethodImpl(ClassDef par, Method decl, Method bod)      
		{
			parent = par;
			header = decl;
			body = bod;
			tabIx = MDTable.MethodImpl;
		}
		internal MapElem(ClassDef par, uint elIx, MDTable elemTab) 
		{
			parent = par;
			elemIx = elIx;
			elemTable = elemTab;
		}
		internal InterfaceImpl(ClassDef theClass, Class theInterface) 
		{
			this.theClass = theClass;
			this.theInterface = theInterface;
			tabIx = MDTable.InterfaceImpl;
		}
Exemple #7
0
                protected void AddReference (string full_name, ClassDef klass, Location location)
                {
                        if (table.Contains (full_name))
                                return;

                        ClassTableItem item = new ClassTableItem (klass, location);

                        table[full_name] = item;
                }
		internal ClassLayout(int pack, int cSize, ClassDef par) 
		{
			packSize = (ushort)pack;
			classSize = (uint)cSize;
			parent = par;
			tabIx = MDTable.ClassLayout;
		}
 private void InitPEFile(string name, string fName, bool hasAssembly) {
   metaData = fileImage.GetMetaData();
   thisMod = new Module(fName,metaData);
   if (hasAssembly) {
     thisAssembly = new Assembly(name,metaData);
     metaData.AddToTable(MDTable.Assembly,thisAssembly);      
   }
   moduleClass = AddClass(TypeAttr.Private,"","<Module>");
   moduleClass.SpecialNoSuper();
   metaData.AddToTable(MDTable.Module,thisMod);
 }
 internal GenericParameter (ClassDef owner, MetaData metadata,
                 short index, string name) : this (owner, metadata, index, name, true)
 {
 }
Exemple #11
0
		public FieldTable (ClassDef parent_class)
		{
			this.parent_class = parent_class;
			table = new Hashtable ();
		}
		/// <summary>
		/// Add a class to this module
		/// </summary>
		/// <param name="attrSet">attributes of this class</param>
		/// <param name="nsName">name space name</param>
		/// <param name="name">class name</param>
		/// <param name="superType">super type of this class (extends)</param>
		/// <returns>a descriptor for this new class</returns>
		public ClassDef AddClass(TypeAttr attrSet, string nsName, string name, Class superType) 
		{
			ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData);
			if (superType != null)
				aClass.SetSuper(superType);
			if (PEFile.IsMSCorlib)
				metaData.mscorlib.SetSpecialSystemClass (nsName, name, aClass);
			metaData.AddToTable(MDTable.TypeDef,aClass);
			return aClass;
		}
		/// <summary>
		/// Add a class which extends System.ValueType to this module
		/// </summary>
		/// <param name="attrSet">attributes of this class</param>
		/// <param name="nsName">name space name</param>
		/// <param name="name">class name</param>
		/// <returns>a descriptor for this new class</returns>
		public ClassDef AddValueClass(TypeAttr attrSet, string nsName, string name, ValueClass vClass) 
		{
			ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData);
			if (!ClassDef.IsValueType (nsName, name) && !ClassDef.IsEnum (nsName, name)) {
				aClass.MakeValueClass(vClass);
			} else {
				if (ClassDef.IsEnum (nsName, name))
					aClass.SetSuper (metaData.mscorlib.ValueType ());
				else
					aClass.SetSuper (metaData.mscorlib.GetSpecialSystemClass (PrimitiveType.Object));

				metaData.mscorlib.SetSpecialSystemClass (nsName, name, aClass);
			}
			aClass.SetTypeIndex (PrimitiveType.ValueType.GetTypeIndex ());
			metaData.AddToTable(MDTable.TypeDef,aClass);
			return aClass;
		}
		internal Event(string name, Type eType, ClassDef parent) 
			: base(name, parent) 
		{
			eventType = eType;
			tabIx = MDTable.Event;
		}
 /// <summary>
 /// Add a class which extends System.ValueType to this module
 /// </summary>
 /// <param name="attrSet">attributes of this class</param>
 /// <param name="nsName">name space name</param>
 /// <param name="name">class name</param>
 /// <returns>a descriptor for this new class</returns>
 public ClassDef AddValueClass(TypeAttr attrSet, string nsName, string name, ValueClass vClass) {
   ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData);
   aClass.MakeValueClass(vClass);
   aClass.SetTypeIndex (PrimitiveType.ValueType.GetTypeIndex ());
   metaData.AddToTable(MDTable.TypeDef,aClass);
   return aClass;
 }
		internal Property(string name, Type retType, Type[] pars, ClassDef parent) : base(name, parent) 
		{
			returnType = retType;
			parList = pars;
			if (pars != null) numPars = (uint)pars.Length;
			tabIx = MDTable.Property;
		}
 /// <summary>
 /// Add a class to this module
 /// </summary>
 /// <param name="attrSet">attributes of this class</param>
 /// <param name="nsName">name space name</param>
 /// <param name="name">class name</param>
 /// <param name="superType">super type of this class (extends)</param>
 /// <returns>a descriptor for this new class</returns>
 public ClassDef AddClass(TypeAttr attrSet, string nsName, string name, Class superType) {
   ClassDef aClass = new ClassDef(attrSet,nsName,name,metaData);
   aClass.SetSuper(superType);
   metaData.AddToTable(MDTable.TypeDef,aClass);
   return aClass;
 }
		internal GenericParameter (ClassDef owner, MetaData metadata,
				short index, string name, GenericParamAttributes attr) : this (owner, metadata, index, name, attr, true)
		{
		}
Exemple #19
0
                protected void AddDefined (string full_name, ClassDef klass, Location location)
                {
                        if (table.Contains (full_name))
                                return;

                        ClassTableItem item = new ClassTableItem (klass, location);
                        item.Defined = true;

                        table[full_name] = item;
                }