SetParent() private method

private SetParent ( IResolutionScope par ) : void
par IResolutionScope
return void
Esempio n. 1
0
		internal Class EnumType() 
		{
			/* Called by both mscorlib & !mscorlib, so can be
			   either ClassRef or ClassDef */
			//systemClasses [ valueTypeIx + 1] -> System.Enum
			if (systemClasses[valueTypeIx + 1] == null && !PEFile.IsMSCorlib) {
				ClassRef valType = new ClassRef("System","Enum",metaData);
				valType.SetParent(this);
				valType.MakeValueClass(ValueClass.Enum);
				metaData.AddToTable(MDTable.TypeRef,valType);
				systemClasses[valueTypeIx + 1] = valType;
			}
			return systemClasses[valueTypeIx + 1];
		}
Esempio n. 2
0
		/// <summary>
		/// Add a value class to this external assembly
		/// </summary>
		/// <param name="nsName">name space name</param>
		/// <param name="name">class name</param>
		/// <returns></returns>
		public override ClassRef AddValueClass(string nsName, string name) 
		{
			if (nsName.CompareTo(systemName) == 0) {
				int hash = name.GetHashCode();
				if ((hash == specialNames[valueTypeIx]) ||
						(hash == specialNames[valueTypeIx+1])) {
					return GetValueClass(name,hash);
				}
			}
			ClassRef aClass = new ClassRef(nsName,name,metaData);
			metaData.AddToTable(MDTable.TypeRef,aClass);
			aClass.SetParent(this);
			aClass.MakeValueClass(ValueClass.ValueType);
			return aClass;
		}
Esempio n. 3
0
		internal Class ValueType() 
		{
			if (systemClasses[valueTypeIx] == null && !PEFile.IsMSCorlib) {
				ClassRef valType = new ClassRef("System","ValueType",metaData);
				valType.SetParent(this);
				valType.MakeValueClass(ValueClass.ValueType);
				metaData.AddToTable(MDTable.TypeRef,valType);
				systemClasses[valueTypeIx] = valType;
			}
			return systemClasses[valueTypeIx];
		}
Esempio n. 4
0
		/// <summary>
		/// Add a value class to this external assembly
		/// </summary>
		/// <param name="nsName">name space name</param>
		/// <param name="name">class name</param>
		/// <returns></returns>
		public virtual ClassRef AddValueClass(string nsName, string name) 
		{
			ClassRef aClass = new ClassRef(nsName,name,metaData);
			metaData.AddToTable(MDTable.TypeRef,aClass);
			aClass.SetParent(this);
			aClass.MakeValueClass(ValueClass.ValueType);
			return aClass;
		}
Esempio n. 5
0
		/// <summary>
		/// Add a class to this external module.  This is a class declared in
		/// another module of THIS assembly.
		/// </summary>
		/// <param name="nsName">name space name</param>
		/// <param name="name">class name</param>
		/// <returns>a descriptor for this class in another module</returns>
		public ClassRef AddClass(string nsName, string name) 
		{
			ClassRef aClass = new ClassRef(nsName,name,metaData);
			metaData.AddToTable(MDTable.TypeRef,aClass);
			aClass.SetParent(this);
			return aClass;
		}
Esempio n. 6
0
 internal ClassRef EnumType() {
   //systemClasses [ valueTypeIx + 1] -> System.Enum
   if (systemClasses[valueTypeIx + 1] == null) {
     ClassRef valType = new ClassRef("System","Enum",metaData);
     valType.SetParent(this);
     valType.MakeValueClass(ValueClass.Enum);
     metaData.AddToTable(MDTable.TypeRef,valType);
     systemClasses[valueTypeIx + 1] = valType;
   }
   return systemClasses[valueTypeIx + 1];
 }
Esempio n. 7
0
 /// <summary>
 /// Add a class to the mscorlib assembly
 /// </summary>
 /// <param name="nsName">name space name</param>
 /// <param name="name">class name</param>
 /// <returns></returns>
 public override ClassRef AddClass(string nsName, string name) {
   ClassRef aClass = GetSpecialClass(nsName,name);
   if (aClass == null) {
     aClass = new ClassRef(nsName,name,metaData);
     metaData.AddToTable(MDTable.TypeRef,aClass);
     aClass.SetParent(this);
   }
   return aClass;
 }