protected class ExternAssembly {
public PEAPI.AssemblyRef AssemblyRef;
- public Assembly Assembly;
protected PEAPI.PEFile pefile;
protected Hashtable type_table;
type_table = new Hashtable ();
this.pefile = pefile;
AssemblyRef = pefile.AddExternAssembly (name);
- Assembly = Assembly.Load (asmb_name);
}
public PEAPI.Class GetType (string name_space, string name)
if (klass != null)
return klass;
- // Make sure the type exists
- Type type = Assembly.GetType (full_name);
-
- if (type == null) {
- throw new Exception (String.Format ("Assembly {0} " +
- " does not contain type {1}", AssemblyName.Name, full_name));
- }
-
klass = AssemblyRef.AddClass (name_space, name);
type_table[full_name] = klass;
if (ext_asmb == null)
throw new Exception (String.Format ("Assembly {0} not defined.", asmb_name));
-
return ext_asmb.GetType (name_space, name);
}
}