本文整理汇总了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);
}
示例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);
});
}
示例3: Initialize
/// <inheritdoc/>
public override void Initialize(AnalysisContext analysisContext)
{
analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
analysisContext.EnableConcurrentExecution();
analysisContext.RegisterSymbolAction(AnalyzeMethodSymbol, SymbolKind.Method);
}
示例4: Initialize
public override void Initialize(AnalysisContext context)
{
context.EnableConcurrentExecution();
context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
context.RegisterSymbolAction(AnalyzeSymbol, SymbolKind.NamedType);
}
示例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);
}
示例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
}
);
}
示例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);
}
示例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);
}
示例10: Initialize
public override void Initialize(AnalysisContext context)
{
context.RegisterSymbolAction(symbolContext =>
{
AnalyzeSymbol((INamedTypeSymbol)symbolContext.Symbol, symbolContext.Compilation, symbolContext.ReportDiagnostic, symbolContext.CancellationToken);
}, SymbolKind.NamedType);
}
示例11: Initialize
public override void Initialize(AnalysisContext analysisContext)
{
analysisContext.RegisterSymbolAction(context =>
{
AnalyzeSymbol((INamedTypeSymbol)context.Symbol, context.ReportDiagnostic);
},
SymbolKind.NamedType);
}
示例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);
}
示例13: Initialize
public override void Initialize(AnalysisContext analysisContext)
{
// Analyze properties, methods
analysisContext.RegisterSymbolAction(symbolContext =>
{
AnalyzeSymbol(symbolContext.Symbol, symbolContext);
}, SymbolKind.Property, SymbolKind.Method);
}
示例14: Initialize
/// <inheritdoc/>
public override void Initialize(AnalysisContext context)
{
context.RegisterSymbolAction(HandleMethodDeclaration, SymbolKind.Method);
context.RegisterSyntaxNodeActionHonorExclusions(
HandleAnonymousFunctionExpression,
SyntaxKind.AnonymousMethodExpression,
SyntaxKind.ParenthesizedLambdaExpression,
SyntaxKind.SimpleLambdaExpression);
}
示例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*/);
}