Inheritance: IAssemblyDefinition
Ejemplo n.º 1
0
		public ImportedAssemblyDefinition GetAssemblyDefinition (Assembly assembly)
		{
			ImportedAssemblyDefinition def;
			if (!assembly_2_definition.TryGetValue (assembly, out def)) {

				// This can happen in dynamic context only
				def = new ImportedAssemblyDefinition (assembly, this);
				assembly_2_definition.Add (assembly, def);
				def.ReadAttributes ();
			}

			return def;
		}
Ejemplo n.º 2
0
		public IAssemblyDefinition GetAssemblyDefinition (Assembly assembly)
		{
			IAssemblyDefinition found;
			if (!assembly_2_definition.TryGetValue (assembly, out found)) {

				// This can happen in dynamic context only
				var def = new ImportedAssemblyDefinition (assembly);
				assembly_2_definition.Add (assembly, def);
				def.ReadAttributes ();
				found = def;
			}

			return found;
		}
Ejemplo n.º 3
0
		public void ImportAssembly (Assembly assembly, RootNamespace targetNamespace)
		{
			// It can be used more than once when importing same assembly
			// into 2 or more global aliases
			ImportedAssemblyDefinition definition;
			if (!assembly_2_definition.TryGetValue (assembly, out definition)) {
				definition = new ImportedAssemblyDefinition (assembly);
				assembly_2_definition.Add (assembly, definition);

				definition.ReadAttributes ();
			}

			//
			// This part tries to simulate loading of top-level
			// types only, any missing dependencies are ignores here.
			// Full error report is reported later when the type is
			// actually used
			//
			Type[] all_types;
			try {
				all_types = assembly.GetTypes ();
			} catch (ReflectionTypeLoadException e) {
				all_types = e.Types;
			}

			ImportTypes (all_types, targetNamespace, definition.HasExtensionMethod);
		}