public CILWriter(string filename, bool debug, PEFile pefile) : base(new FileStream(filename, FileMode.Create)) { Contract.Requires(filename != null); Contract.Requires(pefile != null); this.pefile = pefile; WriteLine("// ILASM output by PERWAPI"); WriteLine("// for file <" + pefile.GetFileName() + ">"); }
public void WriteFile(bool debug) { this.Debug = debug; foreach (ReferenceScope externRef in externRefs) { externRef.Write(this); } Assembly assem = pefile.GetThisAssembly(); if (assem != null) { assem.Write(this); } WriteLine(".module " + pefile.GetFileName()); if (fields != null) { foreach (FieldDef field in fields) { field.Write(this); } } if (methods != null) { foreach (MethodDef method in methods) { method.Write(this); } } if (classes != null) { foreach (ClassDef cls in classes) { cls.Write(this); } } this.Flush(); this.Close(); }