コード例 #1
0
        /// <summary>
        /// Initializes a new instance of SolutionRewriter, analyzing the solution path using the provided config.
        /// WARNING: This constructor will rebuild and reanalyze the solution, which will have a performance impact. If you
        /// have an already analyzed solution, use another constructor
        /// </summary>
        /// <param name="analyzerConfiguration">Configuration for code analyzer to be used (AnalyzerConfiguration)</param>
        /// <param name="solutionFilePath">Path to solution file</param>
        /// <param name="solutionConfiguration">Configuration for each project in solution to be built</param>
        public SolutionRewriter(string solutionFilePath, List <ProjectConfiguration> solutionConfiguration, IProjectRewriterFactory projectRewriterFactory = null)
        {
            DownloadResourceFiles();
            _solutionResult         = new SolutionResult();
            _projectRewriterFactory = projectRewriterFactory ?? new DefaultProjectRewriterFactory();
            AnalyzerConfiguration analyzerConfiguration = new AnalyzerConfiguration(LanguageOptions.CSharp)
            {
                MetaDataSettings = new MetaDataSettings()
                {
                    Annotations           = true,
                    DeclarationNodes      = true,
                    MethodInvocations     = true,
                    ReferenceData         = true,
                    LoadBuildData         = true,
                    InterfaceDeclarations = true,
                    MemberAccess          = true,
                    ElementAccess         = true
                }
            };

            _projectRewriters = new List <ProjectRewriter>();
            CodeAnalyzer analyzer        = CodeAnalyzerFactory.GetAnalyzer(analyzerConfiguration, LogHelper.Logger);
            var          analyzerResults = analyzer.AnalyzeSolution(solutionFilePath).Result;

            InitializeProjectRewriters(analyzerResults, solutionConfiguration);
        }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of SolutionRewriter with an already analyzed solution
 /// </summary>
 /// <param name="analyzerResults">The solution analysis</param>
 /// <param name="solutionConfiguration">Configuration for each project in the solution</param>
 public SolutionRewriter(List <AnalyzerResult> analyzerResults, List <ProjectConfiguration> solutionConfiguration, IProjectRewriterFactory projectRewriterFactory = null)
 {
     DownloadResourceFiles();
     _solutionResult         = new SolutionResult();
     _projectRewriterFactory = projectRewriterFactory ?? new DefaultProjectRewriterFactory();
     _projectRewriters       = new List <ProjectRewriter>();
     InitializeProjectRewriters(analyzerResults, solutionConfiguration);
 }
コード例 #3
0
ファイル: ProjectPort.cs プロジェクト: aws/cta
        public ProjectPort(AnalyzerResult analyzerResult, PortCoreConfiguration projectConfiguration, SolutionPort solutionPort, ILogger logger = null)
        {
            if (logger != null)
            {
                LogHelper.Logger = logger;
            }

            _solutionPort           = solutionPort;
            _projectRewriterFactory = new PortCoreProjectRewriterFactory();
            ProjectReferences       = new HashSet <string>()
            {
                Constants.ProjectRecommendationFile
            };
            InitProjectRewriter(analyzerResult, projectConfiguration);
        }
コード例 #4
0
        public SolutionRewriter(IDEProjectResult projectResult, List <ProjectConfiguration> solutionConfiguration, IProjectRewriterFactory projectRewriterFactory = null)
        {
            DownloadResourceFiles();
            _projectRewriterFactory = projectRewriterFactory ?? new DefaultProjectRewriterFactory();

            var projectConfiguration = solutionConfiguration.FirstOrDefault(s => s.ProjectPath == projectResult.ProjectPath);

            if (projectConfiguration != null)
            {
                var projectRewriter = _projectRewriterFactory.GetInstance(projectResult, projectConfiguration);
                _projectRewriters = new List <ProjectRewriter> {
                    projectRewriter
                };
            }
        }