public override void VisitTypeReferenceCollection (TypeReferenceCollection refs) { foreach (TypeReference tr in refs) { if ((tr.Module.Assembly.Name.Name != Context.ExternalAssemblyName) && GetTypeReference (tr, false) == null) AddTypeReference (tr); } }
public override void VisitTypeReferenceCollection (TypeReferenceCollection refs) { foreach (TypeReference tr in refs) { if (GetTypeReference (tr, false) == null) AddTypeReference (tr); } }
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 VisitTypeReferenceCollection(TypeReferenceCollection refs) { }
public TypeReference GetTypeReference (TypeReferenceCollection members, TypeReference member) { foreach (TypeReference mr in members) { if ((mr.FullName == member.FullName) && ((mr.DeclaringType == null && member.DeclaringType == null) || (mr.DeclaringType != null && member.DeclaringType != null && mr.DeclaringType.FullName == member.DeclaringType.FullName))) return mr; } return null; }
public override void VisitTypeReferenceCollection(TypeReferenceCollection refs) { ArrayList orderedTypeRefs = new ArrayList (refs.Count); foreach (TypeReference tr in refs) orderedTypeRefs.Add (tr); orderedTypeRefs.Sort (TableComparers.TypeRef.Instance); TypeRefTable trTable = m_tableWriter.GetTypeRefTable (); foreach (TypeReference t in orderedTypeRefs) { MetadataToken scope; if (t.Module.Assembly != m_mod.Assembly) throw new ReflectionException ("A type as not been correctly imported"); if (t.Scope == null) continue; if (t.DeclaringType != null) scope = new MetadataToken (TokenType.TypeRef, GetRidFor (t.DeclaringType)); else if (t.Scope is AssemblyNameReference) scope = new MetadataToken (TokenType.AssemblyRef, GetRidFor ((AssemblyNameReference) t.Scope)); else if (t.Scope is ModuleDefinition) scope = new MetadataToken (TokenType.Module, GetRidFor ((ModuleDefinition) t.Scope)); else if (t.Scope is ModuleReference) scope = new MetadataToken (TokenType.ModuleRef, GetRidFor ((ModuleReference) t.Scope)); else scope = new MetadataToken (TokenType.ExportedType, 0); TypeRefRow trRow = m_rowWriter.CreateTypeRefRow ( scope, m_mdWriter.AddString (t.Name), m_mdWriter.AddString (t.Namespace)); trTable.Rows.Add (trRow); t.MetadataToken = new MetadataToken (TokenType.TypeRef, (uint) trTable.Rows.Count); } }
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 VisitTypeReferenceCollection(TypeReferenceCollection refs) { foreach (TypeReference type in refs) { VisitTypeReference(type); } }
static void CheckTypeReferenceDuplicates (TypeReferenceCollection references) { List<string> names = new List<string> (); foreach (TypeReference reference in references) { Assert.IsFalse (names.Contains (reference.FullName)); names.Add (reference.FullName); } }