Esempio n. 1
0
        public DependencyAnalyzerService()
        {
            _resultBuilder = new AnalyzeProjectResultBuilder();
            var typeDependencyEnumerator = new Roslyn2TypeDependencyEnumerator(LogTrace);

            _dependencyAnalyzerFactory = new DependencyAnalyzerFactory(typeDependencyEnumerator, LogTrace);
        }
Esempio n. 2
0
        private static IDependencyAnalyzer CreateAnalyzer(string configFolderPath, bool useOutOfProcessAnalyzer)
        {
            var typeDependencyEnumerator = new Roslyn2TypeDependencyEnumerator(LogTraceToConsole);
            var analyzerFactory          = new DependencyAnalyzerFactory(LogTraceToConsole);

            return(useOutOfProcessAnalyzer
                ? analyzerFactory.CreateOutOfProcess(configFolderPath, ServiceAddressProvider.ServiceAddress)
                : analyzerFactory.CreateInProcess(configFolderPath, typeDependencyEnumerator));
        }
Esempio n. 3
0
        private static IDependencyAnalyzer CreateDependencyAnalyzer(CommandLineOptions options)
        {
            var directoryPath = Path.GetDirectoryName(options.CsprojFile);

            var typeDependencyEnumerator  = new Roslyn2TypeDependencyEnumerator(LogTraceToConsole);
            var dependencyAnalyzerFactory = new DependencyAnalyzerFactory(typeDependencyEnumerator, LogTraceToConsole);

            return(options.UseSingleFileConfig
                ? dependencyAnalyzerFactory.CreateFromXmlConfigFile(Path.Combine(directoryPath, "config.nsdepcop"))
                : dependencyAnalyzerFactory.CreateFromMultiLevelXmlConfigFile(directoryPath));
        }
Esempio n. 4
0
        public AnalyzerMessageBase[] AnalyzeProject(IAnalyzerConfig config, string[] sourcePaths, string[] referencedAssemblyPaths)
        {
            var traceMessageBuffer       = new List <string>();
            var typeDependencyValidator  = new CachingTypeDependencyValidator(config);
            var typeDependencyEnumerator = new Roslyn2TypeDependencyEnumerator(i => traceMessageBuffer.Add(i));

            var typeDependencies    = typeDependencyEnumerator.GetTypeDependencies(sourcePaths, referencedAssemblyPaths);
            var illegalDependencies = typeDependencies.Where(i => !typeDependencyValidator.IsAllowedDependency(i)).Take(config.MaxIssueCount);

            traceMessageBuffer.Add(GetCacheStatisticsMessage(typeDependencyValidator));

            var traceMessages             = traceMessageBuffer.Select(i => new TraceMessage(i));
            var illegalDependencyMessages = illegalDependencies.Select(i => new IllegalDependencyMessage(i));

            return(illegalDependencyMessages.OfType <AnalyzerMessageBase>().Concat(traceMessages).ToArray());
        }