internal MetadataImage(MetadataHeader header) { if (header == null) { throw new ArgumentNullException("header"); } Header = header; var tableStream = header.GetStream <TableStream>(); var table = tableStream.GetTable(MetadataTokenType.Assembly); MetadataRow assemblyRow; if (table.TryGetRow(0, out assemblyRow)) { Assembly = (AssemblyDefinition)table.GetMemberFromRow(this, assemblyRow); } else { Assembly = new AssemblyDefinition(null, new Version()); } TypeSystem = new TypeSystem(this, Assembly.Name == "mscorlib"); MetadataResolver = new DefaultMetadataResolver(new DefaultNetAssemblyResolver()); }
internal MetadataImage(MetadataHeader header) { Header = header ?? throw new ArgumentNullException(nameof(header)); var tableStream = header.GetStream <TableStream>(); var table = tableStream.GetTable(MetadataTokenType.Assembly); if (table.TryGetRow(0, out var assemblyRow)) { Assembly = (AssemblyDefinition)table.GetMemberFromRow(this, assemblyRow); } else { Assembly = new AssemblyDefinition(null, new Version()); } TypeSystem = new TypeSystem(this, Assembly.Name == "mscorlib"); MetadataResolver = new DefaultMetadataResolver(new DefaultNetAssemblyResolver()); _entrypoint = new LazyValue <MethodDefinition>(() => TryResolveMember(new MetadataToken(header.NetDirectory.EntryPointToken), out var member) ? member as MethodDefinition : null); }