private async Task <AssemblyCatalogInfo> GetAssemblyCatalogInfoCore(string assemblyFilePath) { AssemblyCatalogInfo result = null; try { using (var stream = new FileStream( assemblyFilePath, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Delete, 262144, FileOptions.RandomAccess)) { using (var pereader = new PEReader(stream, PEStreamOptions.LeaveOpen)) { if (!pereader.HasMetadata) { return(null); } var metadataReader = pereader.GetMetadataReader(); if (!metadataReader.ReferencesAssembly("System.ComponentModel.Composition")) { return(null); } result = new AssemblyCatalogInfo(this, metadataReader, assemblyFilePath); await result.Populate().ConfigureAwait(false); } } } catch (Exception) { result = null; } return(result); }
private async Task<AssemblyCatalogInfo> GetAssemblyCatalogInfoCore(string assemblyFilePath) { AssemblyCatalogInfo result = null; try { using (var stream = new FileStream( assemblyFilePath, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Delete, 262144, FileOptions.RandomAccess)) { using (var pereader = new PEReader(stream, PEStreamOptions.LeaveOpen)) { if (!pereader.HasMetadata) { return null; } var metadataReader = pereader.GetMetadataReader(); if (!metadataReader.ReferencesAssembly("System.ComponentModel.Composition")) { return null; } result = new AssemblyCatalogInfo(this, metadataReader, assemblyFilePath); await result.Populate().ConfigureAwait(false); } } } catch (Exception) { result = null; } return result; }