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


C# AnalysisContext.RegisterSymbolAction方法代码示例

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


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

示例1: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.EnableConcurrentExecution();
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);

            analysisContext.RegisterSymbolAction(AnalyzeField, SymbolKind.Field);
            analysisContext.RegisterSymbolAction(AnalyzeProperty, SymbolKind.Property);
            analysisContext.RegisterSymbolAction(AnalyzeMethod, SymbolKind.Method);
            analysisContext.RegisterOperationAction(AnalyzeObjectCreation, OperationKind.ArrayCreationExpression);
        }
开发者ID:bkoelman,项目名称:roslyn-analyzers,代码行数:10,代码来源:PreferJaggedArraysOverMultidimensional.cs

示例2: Initialize

 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterSymbolAction(AnalyzeField, SymbolKind.Field);
     analysisContext.RegisterSymbolAction(AnalyzeProperty, SymbolKind.Property);
     analysisContext.RegisterSymbolAction(AnalyzeMethod, SymbolKind.Method);
     analysisContext.RegisterOperationBlockStartAction(blockContext =>
     {
         blockContext.RegisterOperationAction(oc => AnalyzeObjectCreation(oc, blockContext.OwningSymbol), OperationKind.ArrayCreationExpression);
     });
 }
开发者ID:Anniepoh,项目名称:roslyn-analyzers,代码行数:10,代码来源:PreferJaggedArraysOverMultidimensional.cs

示例3: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            analysisContext.EnableConcurrentExecution();

            analysisContext.RegisterSymbolAction(AnalyzeMethodSymbol, SymbolKind.Method);
        }
开发者ID:Anniepoh,项目名称:roslyn-analyzers,代码行数:8,代码来源:ParameterNamesShouldMatchBaseDeclaration.cs

示例4: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.EnableConcurrentExecution();
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);

            context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.NamedType);
        }
开发者ID:duracellko,项目名称:roslyn-analyzers,代码行数:7,代码来源:StaticHolderTypes.cs

示例5: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.EnableConcurrentExecution();
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);

            analysisContext.RegisterSymbolAction(symbolContext =>
            {
                var method = (IMethodSymbol)symbolContext.Symbol;
                if (!IsEventLikeNameCandidate(method.Name))
                {
                    Debug.Assert(!HasEventLikeName(method), "fast check failed but eventual check succeeds?");
                    return;
                }

                // Bail out for implicitly declared methods, overridden methods, interface implementations, constructors and finalizers (FxCop compat).
                if (method.IsImplicitlyDeclared ||
                    method.IsOverride ||
                    method.IsImplementationOfAnyInterfaceMember() ||
                    method.IsConstructor() ||
                    method.IsFinalizer())
                {
                    return;
                }

                if (HasEventLikeName(method))
                {
                    // Consider making '{0}' an event.
                    var diagnostic = method.CreateDiagnostic(Rule, method.Name);
                    symbolContext.ReportDiagnostic(diagnostic);
                }
            }, SymbolKind.Method);
        }
开发者ID:bkoelman,项目名称:roslyn-analyzers,代码行数:32,代码来源:UseEventsWhereAppropriate.cs

示例6: Initialize

        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.RegisterSymbolAction(
                (symbol) =>
                {
                    Diagnostic diagnostic;
                    if (TryGetDiagnostic(symbol, out diagnostic))
                    {
                        symbol.ReportDiagnostic(diagnostic);
                    }
                },
                new SymbolKind[] {
                    SymbolKind.Method
                }
            );

            context.RegisterSyntaxNodeAction(
               (nodeContext) =>
               {
                   Diagnostic diagnostic;
                   if (TryGetDiagnostic(nodeContext, out diagnostic))
                   {
                       nodeContext.ReportDiagnostic(diagnostic);
                   }
               },
               new SyntaxKind[] {
                   SyntaxKind.AnonymousMethodExpression,
                    SyntaxKind.ParenthesizedLambdaExpression,
                    SyntaxKind.SimpleLambdaExpression
               }
           );
        }
开发者ID:alecor191,项目名称:RefactoringEssentials,代码行数:33,代码来源:AvoidAsyncVoidAnalyzer.cs

示例7: Initialize

        /// <inheritdoc/>
        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            context.RegisterSymbolAction(Analyzer.HandleFieldDeclaration, SymbolKind.Field);
        }
开发者ID:EdwinEngelen,项目名称:StyleCopAnalyzers,代码行数:8,代码来源:SA1303ConstFieldNamesMustBeginWithUpperCaseLetter.cs

示例8: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.EnableConcurrentExecution();
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);

            analysisContext.RegisterSymbolAction(
                symbolAnalysisContext =>
                {
                    ISymbol symbol = symbolAnalysisContext.Symbol;
                    if (!symbol.ContainingType.IsGenericType ||
                        symbol.DeclaredAccessibility != Accessibility.Public ||
                        !symbol.IsStatic)
                    {
                        return;
                    }

                    var methodSymbol = symbol as IMethodSymbol;
                    if (methodSymbol != null &&
                        (methodSymbol.IsAccessorMethod() ||
                         (methodSymbol.MethodKind == MethodKind.UserDefinedOperator &&
                          (methodSymbol.Name == WellKnownMemberNames.EqualityOperatorName ||
                           methodSymbol.Name == WellKnownMemberNames.InequalityOperatorName))))
                    {
                        return;
                    }

                    symbolAnalysisContext.ReportDiagnostic(symbol.CreateDiagnostic(Rule, symbol.Name));
                }, SymbolKind.Method, SymbolKind.Property);
        }
开发者ID:duracellko,项目名称:roslyn-analyzers,代码行数:29,代码来源:DoNotDeclareStaticMembersOnGenericTypes.cs

示例9: Initialize

        public override void Initialize(AnalysisContext context)
        {
            Arg.IsNotNull(() => context);

            // TODO: Consider registering other actions that act on syntax instead of or in addition to symbols
            context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.NamedType);
        }
开发者ID:jwendl,项目名称:CipherCritic,代码行数:7,代码来源:XmlDocumentMissingAnalyzer.cs

示例10: Initialize

 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSymbolAction(symbolContext =>
     {
         AnalyzeSymbol((INamedTypeSymbol)symbolContext.Symbol, symbolContext.Compilation, symbolContext.ReportDiagnostic, symbolContext.CancellationToken);
     }, SymbolKind.NamedType);
 }
开发者ID:GloryChou,项目名称:roslyn,代码行数:7,代码来源:EnumWithFlagsAttribute.cs

示例11: Initialize

 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterSymbolAction(context =>
     {
         AnalyzeSymbol((INamedTypeSymbol)context.Symbol, context.ReportDiagnostic);
     },
     SymbolKind.NamedType);
 }
开发者ID:GloryChou,项目名称:roslyn,代码行数:8,代码来源:OverloadOperatorEqualsOnOverridingValueTypeEquals.cs

示例12: Initialize

 public override void Initialize(AnalysisContext context)
 {
     // TODO: Consider registering other actions that act on syntax instead of or in addition to symbols
     // See https://github.com/dotnet/roslyn/blob/master/docs/analyzers/Analyzer%20Actions%20Semantics.md for more information
     context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.Field, SymbolKind.Method, SymbolKind.NamedType, SymbolKind.Namespace, SymbolKind.Property);
     //context.RegisterSyntaxNodeAction(CheckXMLComments, SyntaxKind.MethodDeclaration, SyntaxKind.ClassDeclaration, SyntaxKind.PropertyDeclaration);
     //context.RegisterSyntaxTreeAction(HandleSyntaxTree);
 }
开发者ID:MasterDevs,项目名称:SpellMaster,代码行数:8,代码来源:DiagnosticAnalyzer.cs

示例13: Initialize

 public override void Initialize(AnalysisContext analysisContext)
 {
     // Analyze properties, methods 
     analysisContext.RegisterSymbolAction(symbolContext =>
     {
         AnalyzeSymbol(symbolContext.Symbol, symbolContext);
     }, SymbolKind.Property, SymbolKind.Method);
 }
开发者ID:hanin,项目名称:roslyn-analyzers,代码行数:8,代码来源:PropertyNamesShouldNotMatchGetMethods.cs

示例14: Initialize

 /// <inheritdoc/>
 public override void Initialize(AnalysisContext context)
 {
     context.RegisterSymbolAction(HandleMethodDeclaration, SymbolKind.Method);
     context.RegisterSyntaxNodeActionHonorExclusions(
         HandleAnonymousFunctionExpression,
         SyntaxKind.AnonymousMethodExpression,
         SyntaxKind.ParenthesizedLambdaExpression,
         SyntaxKind.SimpleLambdaExpression);
 }
开发者ID:RichiCoder1,项目名称:AsyncUsageAnalyzers,代码行数:10,代码来源:AvoidAsyncVoidAnalyzer.cs

示例15: Initialize

        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.EnableConcurrentExecution();
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);

            // It may be interesting to flag field, property, and event symbols for this analyzer, but don't for now in order
            // to maintain compatibility with the old FxCop CA2222 rule which only analyzed methods.
            analysisContext.RegisterSymbolAction(CheckForDecreasedVisibility, SymbolKind.Method /*, SymbolKind.Field, SymbolKind.Property, SymbolKind.Event*/);
        }
开发者ID:bkoelman,项目名称:roslyn-analyzers,代码行数:9,代码来源:DoNotDecreaseInheritedMemberVisibility.cs


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