protected override SyntaxNodeAnalyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes) { SyntaxNodeAnalyzer analyzer = new SyntaxNodeAnalyzer(cryptTypes); context.RegisterSyntaxNodeAction(analyzer.AnalyzeNode, SyntaxKind.InvocationExpression, SyntaxKind.ObjectCreationExpression); return analyzer; }
public override void Initialize(AnalysisContext analysisContext) { analysisContext.RegisterCompilationStartAction( (context) => { var cryptTypes = new CompilationSecurityTypes(context.Compilation); if (ReferencesAnyTargetType(cryptTypes)) { GetAnalyzer(context, cryptTypes); } }); }
public override void Initialize(AnalysisContext analysisContext) { analysisContext.EnableConcurrentExecution(); // Security analyzer - analyze and report diagnostics on generated code. analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.Analyze | GeneratedCodeAnalysisFlags.ReportDiagnostics); analysisContext.RegisterCompilationStartAction( context => { var cryptTypes = new CompilationSecurityTypes(context.Compilation); if (ReferencesAnyTargetType(cryptTypes)) { GetAnalyzer(context, cryptTypes); } }); }
public SyntaxNodeAnalyzer(CompilationSecurityTypes cryptTypes) { _cryptTypes = cryptTypes; }
private static bool ReferencesAnyTargetType(CompilationSecurityTypes types) { return(types.MD5 != null || types.SHA1 != null || types.HMACSHA1 != null); }
protected abstract SyntaxNodeAnalyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes);
public Analyzer(CompilationSecurityTypes cryptTypes) { _cryptTypes = cryptTypes; }
private static bool ReferencesAnyTargetType(CompilationSecurityTypes types) { return types.MD5 != null || types.SHA1 != null || types.HMACSHA1 != null; }
protected abstract Analyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes);
protected override Analyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes) { Analyzer analyzer = new Analyzer(cryptTypes); context.RegisterSyntaxNodeAction(analyzer.AnalyzeNode, SyntaxKind.InvocationExpression, SyntaxKind.ObjectCreationExpression); return(analyzer); }
public SyntaxNodeAnalyzer(CompilationSecurityTypes cryptTypes) { _cryptTypes = cryptTypes; }
public Analyzer(CompilationSecurityTypes cryptTypes) { _cryptTypes = cryptTypes; }