public bool IsFrameworkAssembly(AssemblyReferenceInformation assembly)
        {
            if (assembly == null)
            {
                // If we don't have the assembly, default to including the API
                return true;
            }

            if (s_microsoftKeys.Contains(assembly.PublicKeyToken))
            {
                return true;
            }

            if (s_frameworkAssemblyNamePrefixes.Any(p => assembly.Name.StartsWith(p, StringComparison.OrdinalIgnoreCase)))
            {
                return true;
            }

            if (string.Equals(assembly.Name, "mscorlib", StringComparison.OrdinalIgnoreCase))
            {
                return true;
            }

            return false;
        }
        public void EqualityTests()
        {
            var assemblyInfo1 = new AssemblyReferenceInformation("name", Version.Parse("4.0"), "neutral", "1234");
            var assemblyInfo2 = new AssemblyReferenceInformation("Name", Version.Parse("4.0"), "neutral", "1234");
            var assemblyInfo3 = new AssemblyReferenceInformation("name2", Version.Parse("4.0"), "neutral", "1234");

            Assert.Equal($"name, Version=4.0, Culture=neutral, PublicKeyToken=1234", assemblyInfo1.ToString());
            Assert.Equal($"Name, Version=4.0, Culture=neutral, PublicKeyToken=1234", assemblyInfo2.ToString());
            Assert.Equal($"name2, Version=4.0, Culture=neutral, PublicKeyToken=1234", assemblyInfo3.ToString());

            Assert.True(assemblyInfo1.Equals(assemblyInfo2));
            Assert.False(assemblyInfo1.Equals(assemblyInfo3));
            Assert.False(assemblyInfo2.Equals(assemblyInfo3));

            Assert.Equal(assemblyInfo1.GetHashCode(), assemblyInfo2.GetHashCode());
            Assert.NotEqual(assemblyInfo1.GetHashCode(), assemblyInfo3.GetHashCode());
            Assert.NotEqual(assemblyInfo2.GetHashCode(), assemblyInfo3.GetHashCode());
        }
        public DependencyFinderEngineHelper(IDependencyFilter assemblyFilter, MetadataReader metadataReader, IAssemblyFile file)
        {
            _assemblyFilter = assemblyFilter;
            _reader = metadataReader;
            _assemblyLocation = file.Name;

            MemberDependency = new List<MemberDependency>();
            CallingAssembly = new AssemblyInfo
            {
                AssemblyIdentity = metadataReader.FormatAssemblyInfo().ToString(),
                FileVersion = file.Version ?? string.Empty,
                TargetFrameworkMoniker = metadataReader.GetTargetFrameworkMoniker() ?? string.Empty
            };

            // Get assembly info
            var assemblyDefinition = _reader.GetAssemblyDefinition();

            _currentAssemblyInfo = _reader.FormatAssemblyInfo(assemblyDefinition);
            _currentAssemblyName = _reader.GetString(assemblyDefinition.Name);
        }
        public void AssemblyNameStartsWithSpecifiedString(string name, bool succeed)
        {
            var assembly = new AssemblyReferenceInformation(name, Version.Parse("4.0"), string.Empty, string.Empty);

            Assert.Equal(succeed, _assemblyFilter.IsFrameworkAssembly(assembly));
        }
        public void DotNetFrameworkFilterCheckPublicKeyToken(string publicKeyToken, bool succeed)
        {
            var assembly = new AssemblyReferenceInformation(string.Empty, Version.Parse("4.0"), string.Empty, publicKeyToken);

            Assert.Equal(succeed, _assemblyFilter.IsFrameworkAssembly(assembly));
        }
 public bool IsFrameworkAssembly(AssemblyReferenceInformation assembly)
 {
     return string.Equals(_assemblyName, assembly?.Name);
 }
 public bool IsFrameworkAssembly(AssemblyReferenceInformation assembly)
 {
     return true;
 }