Beispiel #1
0
 public CliModuleDictionary(CliAssembly owner)
     : base()
 {
     this.modules = GetReferenceModules(owner);
     base.Initialize(this.modules.Length + 1);
     this.owner = owner;
 }
Beispiel #2
0
 private static int GetModuleCount(CliAssembly owner)
 {
     if (owner.MetadataRoot.TableStream.ModuleReferenceTable != null)
     {
         return(GetReferenceModules(owner).Count() + 1);
     }
     return(1);
 }
Beispiel #3
0
        private static ICliMetadataModuleReferenceTableRow[] GetReferenceModules(CliAssembly owner)
        {
            var mrTable = owner.MetadataRoot.TableStream.ModuleReferenceTable;
            var fTable  = owner.MetadataRoot.TableStream.FileTable;

            if (mrTable != null && fTable != null)
            {
                mrTable.Read();
                fTable.Read();
                var mtFQuery = from moduleRef in mrTable
                               join file in fTable on moduleRef.NameIndex equals file.NameIndex
                               select moduleRef;
                return(mtFQuery.ToArray());
            }
            return(new ICliMetadataModuleReferenceTableRow[0]);
        }
Beispiel #4
0
 internal CliModule(CliAssembly owner, ICliMetadataModuleTableRow metadata)
     : base(owner)
 {
     this.Metadata   = metadata;
     this.memberData = ScanForMemberData(metadata);
 }