internal ModuleDefinition(string name, AssemblyDefinition asm, StructureReader reader, bool main) : base(name) { if (asm == null) { throw new ArgumentNullException("asm"); } if (name == null || name.Length == 0) { throw new ArgumentNullException("name"); } m_asm = asm; m_main = main; #if !CF_1_0 m_mvid = Guid.NewGuid(); #endif if (reader != null) { m_image = reader.Image; m_imgReader = reader.ImageReader; m_manifestOnly = reader.ManifestOnly; } else { m_image = Image.CreateImage(); } m_modRefs = new ModuleReferenceCollection(this); m_asmRefs = new AssemblyNameReferenceCollection(this); m_res = new ResourceCollection(this); m_types = new TypeDefinitionCollection(this); m_refs = new TypeReferenceCollection(this); m_members = new MemberReferenceCollection(this); m_controller = new ReflectionController(this); m_resolver = new MetadataResolver(asm); }
public override void VisitResourceCollection(ResourceCollection resources) { VisitCollection(resources); }
public override void VisitResourceCollection (ResourceCollection resources) { VisitCollection (resources); }
public override void VisitResourceCollection (ResourceCollection resources) { if (!m_tHeap.HasTable (ManifestResourceTable.RId)) return; ManifestResourceTable mrTable = m_tableReader.GetManifestResourceTable (); FileTable fTable = m_tableReader.GetFileTable (); for (int i = 0; i < mrTable.Rows.Count; i++) { ManifestResourceRow mrRow = mrTable [i]; if (mrRow.Implementation.RID == 0) { EmbeddedResource eres = new EmbeddedResource ( ReadString (mrRow.Name), mrRow.Flags); BinaryReader br = m_ir.MetadataReader.GetDataReader ( m_img.CLIHeader.Resources.VirtualAddress); br.BaseStream.Position += mrRow.Offset; eres.Data = br.ReadBytes (br.ReadInt32 ()); resources.Add (eres); continue; } switch (mrRow.Implementation.TokenType) { case TokenType.File : FileRow fRow = fTable [(int) mrRow.Implementation.RID - 1]; LinkedResource lres = new LinkedResource ( ReadString (mrRow.Name), mrRow.Flags, ReadString (fRow.Name)); lres.Hash = ReadBlob (fRow.HashValue); resources.Add (lres); break; case TokenType.AssemblyRef : AssemblyNameReference asm = m_module.AssemblyReferences [(int) mrRow.Implementation.RID - 1]; AssemblyLinkedResource alr = new AssemblyLinkedResource ( ReadString (mrRow.Name), mrRow.Flags, asm); resources.Add (alr); break; } } }
public virtual void VisitResourceCollection (ResourceCollection resources) { }
internal ModuleDefinition(string name, AssemblyDefinition asm, StructureReader reader, bool main) : base(name) { if (asm == null) throw new ArgumentNullException ("asm"); if (name == null || name.Length == 0) throw new ArgumentNullException ("name"); m_asm = asm; m_main = main; #if !CF_1_0 m_mvid = Guid.NewGuid (); #endif if (reader != null) { m_image = reader.Image; m_imgReader = reader.ImageReader; m_manifestOnly = reader.ManifestOnly; } else m_image = Image.CreateImage (); m_modRefs = new ModuleReferenceCollection (this); m_asmRefs = new AssemblyNameReferenceCollection (this); m_res = new ResourceCollection (this); m_types = new TypeDefinitionCollection (this); m_types.OnTypeDefinitionAdded += new TypeDefinitionEventHandler (OnTypeDefinitionAdded); m_types.OnTypeDefinitionRemoved += new TypeDefinitionEventHandler (OnTypeDefinitionRemoved); m_refs = new TypeReferenceCollection (this); m_refs.OnTypeReferenceAdded += new TypeReferenceEventHandler (OnTypeReferenceAdded); m_refs.OnTypeReferenceRemoved += new TypeReferenceEventHandler (OnTypeReferenceRemoved); m_members = new MemberReferenceCollection (this); m_controller = new ReflectionController (this); }
public virtual void VisitResourceCollection(ResourceCollection resources) { }
public override void VisitResourceCollection (ResourceCollection resources) { for (int i = 0; i < resources.Count; i++) { if (i > 0) m_writer.WriteLine (); Resource r = resources [i]; WriteResourceHeader (r); m_writer.OpenBlock (); r.Accept (this); m_writer.CloseBlock (); } }