コード例 #1
0
ファイル: CILWriter.cs プロジェクト: parhelia512/perwapi
 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() + ">");
 }
コード例 #2
0
ファイル: CILWriter.cs プロジェクト: dbremner/perwapi
 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() + ">");
 }
コード例 #3
0
ファイル: CILWriter.cs プロジェクト: parhelia512/perwapi
        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();
        }