当前位置: 首页>>代码示例>>C#>>正文


C# CompilationStartAnalysisContext.RegisterCompilationEndAction方法代码示例

本文整理汇总了C#中CompilationStartAnalysisContext.RegisterCompilationEndAction方法的典型用法代码示例。如果您正苦于以下问题:C# CompilationStartAnalysisContext.RegisterCompilationEndAction方法的具体用法?C# CompilationStartAnalysisContext.RegisterCompilationEndAction怎么用?C# CompilationStartAnalysisContext.RegisterCompilationEndAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CompilationStartAnalysisContext的用法示例。


在下文中一共展示了CompilationStartAnalysisContext.RegisterCompilationEndAction方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: OnCompilationStart

        private void OnCompilationStart(CompilationStartAnalysisContext context)
        {
            _candidateReadonlyFields = new HashSet<IFieldSymbol>();
            _writtenFields = new HashSet<IFieldSymbol>();

            _internalsVisibleToAttribute = context.Compilation.GetTypeByMetadataName(
                                                "System.Runtime.CompilerServices.InternalsVisibleToAttribute");

            context.RegisterSymbolAction(LocateCandidateReadonlyFields, SymbolKind.Field);
            context.RegisterSyntaxNodeAction(CheckForAssignment, s_compoundAssignmentExpressionKinds);
            context.RegisterSyntaxNodeAction(CheckForRefOrOutParameter, SyntaxKind.Argument);
            context.RegisterSyntaxNodeAction(CheckForExternMethodWithRefParameters, SyntaxKind.MethodDeclaration);
            context.RegisterSyntaxNodeAction(CheckForExternIndexer, SyntaxKind.IndexerDeclaration);
            context.RegisterSyntaxNodeAction(CheckForInvocations, SyntaxKind.InvocationExpression);
            context.RegisterCompilationEndAction(ReportUnwrittenFields);
        }
开发者ID:michaelcfanning,项目名称:codeformatter,代码行数:16,代码来源:UnwrittenWritableFieldAnalyzer.cs

示例2: OnCompilationStart

        public override void OnCompilationStart(CompilationStartAnalysisContext context)
        {
            // Read the file line-by-line to get the terms.
            var additionalAnalyzerFiles = context.Options.AdditionalFiles.Where(af => af.Path.IndexOf(s_analyzerName, 0, StringComparison.OrdinalIgnoreCase) >= 0);

            if (!additionalAnalyzerFiles.Any())
                return;

            lock (_apisToEnsureExist)
            {
                foreach (string api in ReadRequiredAPIsFromFiles(additionalAnalyzerFiles))
                {
                    _apisToEnsureExist.Add(api);
                }
            }

            context.RegisterCompilationEndAction(OnCompilationEnd);
            context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.Method, SymbolKind.Event);
        }
开发者ID:schaabs,项目名称:buildtools,代码行数:19,代码来源:MembersMustExistAnalyzer.cs

示例3: SetupAnalysis

        //creates an instance of a class to perform the analysis statefully, and registers for various actions
        private void SetupAnalysis(CompilationStartAnalysisContext context)
        {
            //state collector
            CompilationAnalyzer compilationAnalyzer = new CompilationAnalyzer();

            //collects all class, method, field, and property symbols as state
            context.RegisterSymbolAction(compilationAnalyzer.AddClass, SymbolKind.NamedType);
            context.RegisterSymbolAction(compilationAnalyzer.AddMethod, SymbolKind.Method);
            context.RegisterSymbolAction(compilationAnalyzer.AddField, SymbolKind.Field);
            context.RegisterSymbolAction(compilationAnalyzer.AddProperty, SymbolKind.Property);

            //analyzes the state that has been collected
            context.RegisterCompilationEndAction(compilationAnalyzer.ReportCompilationEndDiagnostics);
        }
开发者ID:maggiemsft,项目名称:roslyn-analyzers,代码行数:15,代码来源:DiagnosticAnalyzer.cs

示例4: OnCompilationStart

        private void OnCompilationStart(CompilationStartAnalysisContext compilationContext)
        {
            var additionalFiles = compilationContext.Options.AdditionalFiles;
            if (!_extraAdditionalFiles.IsDefaultOrEmpty)
            {
                additionalFiles = additionalFiles.AddRange(_extraAdditionalFiles);
            }

            ApiData shippedData;
            ApiData unshippedData;
            if (!TryGetApiData(additionalFiles, compilationContext.CancellationToken, out shippedData, out unshippedData))
            {
                return;
            }

            List<Diagnostic> errors;
            if (!ValidateApiFiles(shippedData, unshippedData, out errors))
            {
                compilationContext.RegisterCompilationEndAction(context =>
                {
                    foreach (var cur in errors)
                    {
                        context.ReportDiagnostic(cur);
                    }
                });

                return;
            }

            var impl = new Impl(shippedData, unshippedData);
            compilationContext.RegisterSymbolAction(
                impl.OnSymbolAction,
                SymbolKind.NamedType,
                SymbolKind.Event,
                SymbolKind.Field,
                SymbolKind.Method);
            compilationContext.RegisterCompilationEndAction(impl.OnCompilationEnd);
        }
开发者ID:richardlford,项目名称:roslyn-analyzers,代码行数:38,代码来源:DeclarePublicAPIAnalyzer.cs

示例5: CreateAnalyzerWithinCompilation

 public void CreateAnalyzerWithinCompilation(CompilationStartAnalysisContext context)
 {
     context.RegisterCompilationEndAction(AnalyzeCompilation);
 }
开发者ID:CAPCHIK,项目名称:roslyn,代码行数:4,代码来源:MockDiagnosticAnalyzerTests.cs

示例6: HandleCompilationStart

 private static void HandleCompilationStart(CompilationStartAnalysisContext context)
 {
     Analyzer analyzer = new Analyzer();
     context.RegisterSyntaxTreeAction(analyzer.HandleSyntaxTree);
     context.RegisterCompilationEndAction(analyzer.HandleCompilation);
 }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:6,代码来源:SA0001XmlCommentAnalysisDisabled.cs

示例7: Initialize

		/// <summary>
		///   Called once at session start to register actions in the analysis context.
		/// </summary>
		protected override void Initialize(CompilationStartAnalysisContext context)
		{
			context.RegisterSymbolAction(AnalyzeType, SymbolKind.NamedType);
			context.RegisterSymbolAction(AnalyzeMember, SymbolKind.Method, SymbolKind.Property, SymbolKind.Event);
			context.RegisterCompilationEndAction(AnalyzeCompilation);
		}
开发者ID:isse-augsburg,项目名称:ssharp,代码行数:9,代码来源:FaultEffectAnalyzer.cs


注:本文中的CompilationStartAnalysisContext.RegisterCompilationEndAction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。